feat(mobile): phone styling for tours list, trip settings and admin cards

The tours list in the places browser now uses the same rows as places: a
grade or type tile, the day plan's figure badges and a day badge or plus on
the right. A shared "Planned on desktop" badge replaces the grey hint box
there and sits under the road trip's empty stage.

Trip settings and trip edit open phone sheets instead of the desktop
dialogs; the edit sheet gains the day count of a dateless trip and the
reminder. Questions are asked in phone sheets, not the browser.

Admin on the phone: the paddle regions and school holiday cards are phone
cards on their shared hooks, long addon descriptions fold to two lines,
the addon header keeps the wordmark inside its sentence, the group bands
drop the dash and the permissions actions get a row of their own. The
Tours addon gets its catalog name and description in every locale.

The journey map on the phone shows every layer without the switch bar.
This commit is contained in:
Maurice
2026-10-22 21:26:41 +02:00
parent bb3c0151d5
commit 49afee161d
151 changed files with 2660 additions and 899 deletions
+2
View File
@@ -672,6 +672,8 @@ const admin: TranslationStrings = {
'admin.addons.catalog.roadtrip.name': 'رحلة برية',
'admin.addons.catalog.roadtrip.description':
'خطّط رحلات القيادة مع محطات توقف، وتُحدَّث أوقات القيادة والوصول تلقائيًا',
'admin.addons.catalog.tours.name': 'الجولات',
'admin.addons.catalog.tours.description': 'مشي وركوب دراجات وجولات أخرى تتبع مسارًا',
'admin.addons.catalog.memories.name': 'صور (Immich)',
'admin.addons.catalog.memories.description': 'شارك صور رحلتك عبر Immich',
'admin.addons.catalog.mcp.description': 'بروتوكول سياق النموذج لتكامل مساعد الذكاء الاصطناعي',
+9 -1
View File
@@ -68,7 +68,15 @@ const mobileTrip: TranslationStrings = {
'mobileTrip.rtInfoTitle': 'أرقام القيادة',
'mobileTrip.rtDesktopNote':
'تُضبط هذه الأرقام على سطح المكتب، حيث يمكنك أيضًا مقارنة المسارات البديلة، وجعل يوم يتبع مسارًا مستوردًا.',
'mobileTrip.rtPlanOnDesktop': 'يتم التخطيط على سطح المكتب. يحسب TREK القيادة بمجرد أن يضم اليوم مكانين.',
'mobileTrip.planOnDesktop': 'التخطيط على الحاسوب',
'mobileTrip.rtDriveOnTwoPlaces': 'يحسب TREK القيادة بمجرد أن يضم اليوم مكانين.',
'mobileTrip.toursEmptyBody': 'تظهر الجولات المحفوظة هنا ويمكن إضافتها إلى يوم.',
'mobileTrip.toursCount': '{count} جولة',
'mobileTrip.toursCount.zero': 'لا توجد جولات',
'mobileTrip.toursCount.one': 'جولة واحدة',
'mobileTrip.toursCount.two': 'جولتان',
'mobileTrip.toursCount.few': '{count} جولات',
'mobileTrip.toursCount.many': '{count} جولة',
'mobileTrip.rtSearchOffline': 'يلزم اتصال بالإنترنت: يقرأ البحث المسار الذي أمامك.',
'mobileTrip.rtBehind': '{time} تأخرًا عن الخطة',
'mobileTrip.rtStart': 'البداية',
-1
View File
@@ -1,7 +1,6 @@
import type { TranslationStrings } from '../types';
const nav: TranslationStrings = {
'nav.trip': 'الرحلة',
'nav.settings': 'الإعدادات',
'nav.admin': 'الإدارة',
'nav.logout': 'تسجيل الخروج',
-2
View File
@@ -211,8 +211,6 @@ const tours: TranslationStrings = {
'tours.planner.inspector.profileFocus': 'عند {distance}: {elevation}',
'tours.planner.inspector.elevationPlaceholder': 'يظهر المخطط عند توفّر بيانات ارتفاع المسار.',
'tours.planner.gpxNoGeometry': 'بيانات الشكل الهندسي للمسار غير متاحة لملف GPX المستورد هذا.',
'tours.planner.mobileHint':
'تخطيط الجولات متاح على الأجهزة اللوحية والحواسيب. يمكنك هنا عرض الجولات المحفوظة وجدولتها.',
'tourTypes.hike': 'مشي طويل',
'tourTypes.bike': 'جولة بالدراجة',
'tourTypes.run': 'جري',
+2
View File
@@ -709,6 +709,8 @@ const admin: TranslationStrings = {
'admin.addons.catalog.roadtrip.name': 'Avtomobil səyahəti',
'admin.addons.catalog.roadtrip.description':
'Marşrut üzərindəki dayanacaqlar, sürmə müddətləri və avtomatik yenilənən çatma vaxtları ilə avtomobil səfərlərini planlaşdırın',
'admin.addons.catalog.tours.name': 'Turlar',
'admin.addons.catalog.tours.description': 'Marşrut üzrə gəzintilər, velosiped və digər turlar',
'admin.addons.catalog.memories.name': 'Fotolar (Immich)',
'admin.addons.catalog.memories.description': 'Immich sisteminiz vasitəsilə səyahət fotolarını paylaşın',
'admin.addons.catalog.mcp.name': 'MCP',
+5 -2
View File
@@ -56,8 +56,11 @@ const mobileTrip: TranslationStrings = {
'mobileTrip.rtInfoTitle': 'Avtomobil marşrutu göstəriciləri',
'mobileTrip.rtDesktopNote':
'Bu göstəricilər kompüterdə təyin edilir. Orada alternativ marşrutları müqayisə edə və günü idxal edilmiş iz üzrə hərəkət edəcək şəkildə qura bilərsiniz.',
'mobileTrip.rtPlanOnDesktop':
'Planlaşdırma kompüterdə aparılır. Gündə iki məkan olduqda TREK avtomobil marşrutunu hesablayır.',
'mobileTrip.planOnDesktop': 'Planlama kompüterdə',
'mobileTrip.rtDriveOnTwoPlaces': 'Gündə iki məkan olduqda TREK avtomobil marşrutunu hesablayır.',
'mobileTrip.toursEmptyBody': 'Saxlanmış turlar burada görünür və günə əlavə edilə bilər.',
'mobileTrip.toursCount': '{count} tur',
'mobileTrip.toursCount.one': '{count} tur',
'mobileTrip.rtSearchOffline': 'İnternet bağlantısı tələb olunur: axtarış qarşıdakı marşrutu yoxlayır.',
'mobileTrip.rtBehind': 'Plandan {time} geri',
'mobileTrip.rtStart': 'Başlanğıc',
-1
View File
@@ -1,7 +1,6 @@
import type { TranslationStrings } from '../types';
const nav: TranslationStrings = {
'nav.trip': 'Səyahət',
'nav.settings': 'Tənzimləmələr',
'nav.admin': 'Admin',
'nav.logout': 'Çıxış et',
-2
View File
@@ -195,8 +195,6 @@ const tours: TranslationStrings = {
'tours.planner.inspector.profileFocus': '{distance} məsafədə: {elevation}',
'tours.planner.inspector.elevationPlaceholder': 'Marşrutun yüksəklik məlumatları olduqda profil göstərilir.',
'tours.planner.gpxNoGeometry': 'Bu GPX idxalı üçün marşrut həndəsəsi əlçatan deyil.',
'tours.planner.mobileHint':
'Tur planlaşdırmaq planşet və kompüterdə mümkündür. Burada saxlanılmış turlara baxmaq və onları günlərə təyin etmək olar.',
'tourTypes.hike': 'Yürüş',
'tourTypes.bike': 'Velosiped turu',
'tourTypes.run': 'Qaçış',
+2
View File
@@ -621,6 +621,8 @@ const admin: TranslationStrings = {
'admin.addons.catalog.roadtrip.name': 'Viagem de carro',
'admin.addons.catalog.roadtrip.description':
'Planeje trajetos com paradas; tempos de direção e horários de chegada se recalculam sozinhos',
'admin.addons.catalog.tours.name': 'Passeios',
'admin.addons.catalog.tours.description': 'Trilhas, pedaladas e outros passeios que seguem uma rota',
'admin.addons.catalog.mcp.name': 'MCP',
'admin.addons.catalog.mcp.description': 'Model Context Protocol para integração com assistentes de IA',
'admin.addons.subtitleBefore': 'Ative ou desative recursos para personalizar sua ',
+5 -2
View File
@@ -56,8 +56,11 @@ const mobileTrip: TranslationStrings = {
'mobileTrip.rtInfoTitle': 'Dados de condução',
'mobileTrip.rtDesktopNote':
'Esses dados são definidos no computador, onde você também pode comparar rotas alternativas e fazer um dia seguir uma trilha importada.',
'mobileTrip.rtPlanOnDesktop':
'O planejamento acontece no computador. O TREK calcula o trajeto assim que um dia tem dois locais.',
'mobileTrip.planOnDesktop': 'Planejado no computador',
'mobileTrip.rtDriveOnTwoPlaces': 'O TREK calcula o trajeto assim que um dia tem dois locais.',
'mobileTrip.toursEmptyBody': 'Os passeios salvos aparecem aqui, prontos para entrar em um dia.',
'mobileTrip.toursCount': '{count} passeios',
'mobileTrip.toursCount.one': '{count} passeio',
'mobileTrip.rtSearchOffline': 'Precisa de conexão: a busca lê a rota à frente.',
'mobileTrip.rtBehind': '{time} de atraso em relação ao plano',
'mobileTrip.rtStart': 'Início',
-1
View File
@@ -1,7 +1,6 @@
import type { TranslationStrings } from '../types';
const nav: TranslationStrings = {
'nav.trip': 'Viagem',
'nav.settings': 'Configurações',
'nav.admin': 'Admin',
'nav.logout': 'Sair',
-2
View File
@@ -200,8 +200,6 @@ const tours: TranslationStrings = {
'tours.planner.inspector.elevationPlaceholder':
'O perfil é exibido quando os dados de elevação da rota estão disponíveis.',
'tours.planner.gpxNoGeometry': 'A geometria da rota não está disponível para esta importação GPX.',
'tours.planner.mobileHint':
'O planejamento de passeios está disponível em tablets e computadores. Aqui você pode visualizar os passeios salvos e atribuí-los a um dia.',
'tourTypes.hike': 'Trilha',
'tourTypes.bike': 'Passeio de bicicleta',
'tourTypes.run': 'Corrida',
+2
View File
@@ -383,6 +383,8 @@ const admin: TranslationStrings = {
'admin.addons.catalog.roadtrip.name': 'Viatge per carretera',
'admin.addons.catalog.roadtrip.description':
'Planifica trajectes amb parades: els temps de conducció i les hores d’arribada es recalculen sols',
'admin.addons.catalog.tours.name': 'Excursions',
'admin.addons.catalog.tours.description': 'Caminades, sortides en bici i altres excursions que segueixen una ruta',
'admin.addons.catalog.collections.name': 'Col·leccions',
'admin.addons.catalog.collections.description': 'Recull llocs de qualsevol viatge en llistes amb nom i reutilitza’ls',
'admin.oidcOnlyMode': 'Desactivar autenticació per contrasenya',
+5 -2
View File
@@ -56,8 +56,11 @@ const mobileTrip: TranslationStrings = {
'mobileTrip.rtInfoTitle': 'Dades de conducció',
'mobileTrip.rtDesktopNote':
'Aquestes dades es configuren a l’escriptori, on també pots comparar rutes alternatives i fer que un dia segueixi una traça importada.',
'mobileTrip.rtPlanOnDesktop':
'La planificació es fa a l’escriptori. TREK calcula el trajecte quan un dia té dos llocs.',
'mobileTrip.planOnDesktop': 'Es planifica a l’ordinador',
'mobileTrip.rtDriveOnTwoPlaces': 'TREK calcula el trajecte quan un dia té dos llocs.',
'mobileTrip.toursEmptyBody': 'Les excursions desades apareixen aquí, a punt per afegir-les a un dia.',
'mobileTrip.toursCount': '{count} excursions',
'mobileTrip.toursCount.one': '{count} excursió',
'mobileTrip.rtSearchOffline': 'Cal connexió: la cerca llegeix la ruta que tens per endavant.',
'mobileTrip.rtBehind': '{time} de retard sobre el pla',
'mobileTrip.rtStart': 'Inici',
-1
View File
@@ -1,7 +1,6 @@
import type { TranslationStrings } from '../types';
const nav: TranslationStrings = {
'nav.trip': 'Viatge',
'nav.settings': 'Configuració',
'nav.admin': 'Administració',
'nav.logout': 'Tanca la sessió',
-2
View File
@@ -200,8 +200,6 @@ const tours: TranslationStrings = {
'tours.planner.inspector.elevationPlaceholder':
"El perfil es mostra quan hi ha dades d'altitud de la ruta disponibles.",
'tours.planner.gpxNoGeometry': 'La geometria de la ruta no està disponible per a aquesta importació GPX.',
'tours.planner.mobileHint':
'La planificació d’excursions està disponible en tauletes i ordinadors. Aquí pots consultar les excursions desades i assignar-les a un dia.',
'tourTypes.hike': 'Senderisme',
'tourTypes.bike': 'Ruta en bicicleta',
'tourTypes.run': 'Córrer',
+2
View File
@@ -641,6 +641,8 @@ const admin: TranslationStrings = {
'admin.addons.catalog.roadtrip.name': 'Cesta autem',
'admin.addons.catalog.roadtrip.description':
'Plánujte jízdy se zastávkami – doby jízdy a časy příjezdu se přepočítají samy',
'admin.addons.catalog.tours.name': 'Výlety',
'admin.addons.catalog.tours.description': 'Pěší, cyklo a další výlety, které vedou po trase',
'admin.addons.enabled': 'Povoleno',
'admin.addons.disabled': 'Zakázáno',
'admin.addons.type.trip': 'Cesta',
+6 -1
View File
@@ -59,7 +59,12 @@ const mobileTrip: TranslationStrings = {
'mobileTrip.rtInfoTitle': 'Údaje o jízdě',
'mobileTrip.rtDesktopNote':
'Tyto údaje se nastavují na počítači, kde také můžete porovnávat jiné trasy a nechat den sledovat importovanou stopu.',
'mobileTrip.rtPlanOnDesktop': 'Plánování probíhá na počítači. Jakmile má den dvě místa, TREK jízdu spočítá.',
'mobileTrip.planOnDesktop': 'Plánuje se na počítači',
'mobileTrip.rtDriveOnTwoPlaces': 'Jakmile má den dvě místa, TREK jízdu spočítá.',
'mobileTrip.toursEmptyBody': 'Uložené výlety se zobrazí tady a můžeš je přidat ke dni.',
'mobileTrip.toursCount': '{count} výletů',
'mobileTrip.toursCount.one': '{count} výlet',
'mobileTrip.toursCount.few': '{count} výlety',
'mobileTrip.rtSearchOffline': 'Vyžaduje připojení: hledání čte trasu před vámi.',
'mobileTrip.rtBehind': 'o {time} za plánem',
'mobileTrip.rtStart': 'Začátek',
-1
View File
@@ -1,7 +1,6 @@
import type { TranslationStrings } from '../types';
const nav: TranslationStrings = {
'nav.trip': 'Cesta',
'nav.settings': 'Nastavení',
'nav.admin': 'Administrace',
'nav.logout': 'Odhlásit se',
-2
View File
@@ -198,8 +198,6 @@ const tours: TranslationStrings = {
'tours.planner.inspector.profileFocus': 'Ve vzdálenosti {distance}: {elevation}',
'tours.planner.inspector.elevationPlaceholder': 'Profil se zobrazí, až budou k dispozici výškové údaje trasy.',
'tours.planner.gpxNoGeometry': 'Pro tento import GPX není dostupná geometrie trasy.',
'tours.planner.mobileHint':
'Plánování výletů je dostupné na tabletu a počítači. Zde lze uložené výlety prohlížet a přiřazovat ke dnům.',
'tourTypes.hike': 'Pěší túra',
'tourTypes.bike': 'Cyklovýlet',
'tourTypes.run': 'Běh',
+2
View File
@@ -626,6 +626,8 @@ const admin: TranslationStrings = {
'admin.addons.catalog.roadtrip.name': 'Roadtrip',
'admin.addons.catalog.roadtrip.description':
'Fahrten mit Zwischenstopps planen — Fahrzeiten und Ankunftszeiten rechnen sich selbst neu',
'admin.addons.catalog.tours.name': 'Touren',
'admin.addons.catalog.tours.description': 'Wanderungen, Radtouren und andere Touren entlang einer Route',
'admin.addons.catalog.memories.name': 'Fotos (Immich)',
'admin.addons.catalog.memories.description': 'Reisefotos über deine Immich-Instanz teilen',
'admin.addons.catalog.mcp.name': 'MCP',
+5 -1
View File
@@ -56,7 +56,11 @@ const mobileTrip: TranslationStrings = {
'mobileTrip.rtInfoTitle': 'Fahrdaten',
'mobileTrip.rtDesktopNote':
'Diese Werte werden am Desktop gesetzt. Dort kannst du auch Routenvarianten vergleichen und einen Tag einer importierten Spur folgen lassen.',
'mobileTrip.rtPlanOnDesktop': 'Geplant wird am Desktop. TREK berechnet die Fahrt, sobald ein Tag zwei Orte hat.',
'mobileTrip.planOnDesktop': 'Geplant wird am Desktop',
'mobileTrip.rtDriveOnTwoPlaces': 'TREK berechnet die Fahrt, sobald ein Tag zwei Orte hat.',
'mobileTrip.toursEmptyBody': 'Gespeicherte Touren erscheinen hier und lassen sich einem Tag zuordnen.',
'mobileTrip.toursCount': '{count} Touren',
'mobileTrip.toursCount.one': '{count} Tour',
'mobileTrip.rtSearchOffline': 'Braucht eine Verbindung: Die Suche liest die Strecke, die vor dir liegt.',
'mobileTrip.rtBehind': '{time} hinter dem Plan',
'mobileTrip.rtStart': 'Start',
-1
View File
@@ -1,7 +1,6 @@
import type { TranslationStrings } from '../types';
const nav: TranslationStrings = {
'nav.trip': 'Reise',
'nav.settings': 'Einstellungen',
'nav.admin': 'Admin',
'nav.logout': 'Abmelden',
-2
View File
@@ -201,8 +201,6 @@ const tours: TranslationStrings = {
'tours.planner.inspector.elevationPlaceholder':
'Das Höhenprofil erscheint, sobald Höhendaten für die Route verfügbar sind.',
'tours.planner.gpxNoGeometry': 'Für diesen GPX-Import sind keine Routendaten verfügbar.',
'tours.planner.mobileHint':
'Touren planen kannst du auf einem Tablet oder am Computer. Hier kannst du gespeicherte Touren ansehen und zuordnen.',
'tourTypes.hike': 'Wanderung',
'tourTypes.bike': 'Radtour',
'tourTypes.run': 'Lauf',
+2
View File
@@ -672,6 +672,8 @@ const admin: TranslationStrings = {
'admin.addons.catalog.roadtrip.name': 'Road trip',
'admin.addons.catalog.roadtrip.description':
'Plan drives with stops along the route, driving times, and arrival times that update themselves',
'admin.addons.catalog.tours.name': 'Tours',
'admin.addons.catalog.tours.description': 'Hikes, rides and other tours that follow a route',
'admin.addons.catalog.memories.name': 'Photos (Immich)',
'admin.addons.catalog.memories.description': 'Share trip photos via your Immich instance',
'admin.addons.catalog.mcp.name': 'MCP',
+5 -1
View File
@@ -56,7 +56,11 @@ const mobileTrip: TranslationStrings = {
'mobileTrip.rtInfoTitle': 'Driving figures',
'mobileTrip.rtDesktopNote':
'These figures are set on the desktop, where you can also compare route alternatives and make a day follow an imported track.',
'mobileTrip.rtPlanOnDesktop': 'Planning happens on the desktop. TREK works out the drive once a day has two places.',
'mobileTrip.planOnDesktop': 'Planned on desktop',
'mobileTrip.rtDriveOnTwoPlaces': 'TREK works out the drive once a day has two places.',
'mobileTrip.toursEmptyBody': 'Saved tours show up here, ready to put on a day.',
'mobileTrip.toursCount': '{count} tours',
'mobileTrip.toursCount.one': '{count} tour',
'mobileTrip.rtSearchOffline': 'Needs a connection: the search reads the route ahead.',
'mobileTrip.rtBehind': '{time} behind plan',
'mobileTrip.rtStart': 'Start',
-1
View File
@@ -1,7 +1,6 @@
import type { TranslationStrings } from '../types';
const nav: TranslationStrings = {
'nav.trip': 'Trip',
'nav.settings': 'Settings',
'nav.admin': 'Admin',
'nav.logout': 'Log out',
-2
View File
@@ -194,8 +194,6 @@ const tours: TranslationStrings = {
'tours.planner.inspector.profileFocus': 'At {distance}: {elevation}',
'tours.planner.inspector.elevationPlaceholder': 'The profile is shown when route elevation data is available.',
'tours.planner.gpxNoGeometry': 'Route geometry is unavailable for this GPX import.',
'tours.planner.mobileHint':
'Tour planning is available on tablet and desktop. Saved tours can be viewed and scheduled here.',
'tourTypes.hike': 'Hike',
'tourTypes.bike': 'Bike tour',
'tourTypes.run': 'Run',
+2
View File
@@ -766,6 +766,8 @@ const admin: TranslationStrings = {
'admin.addons.catalog.roadtrip.name': 'Viaje por carretera',
'admin.addons.catalog.roadtrip.description':
'Planifica trayectos con paradas: los tiempos de conducción y las horas de llegada se recalculan solos',
'admin.addons.catalog.tours.name': 'Excursiones',
'admin.addons.catalog.tours.description': 'Senderismo, rutas en bici y otras excursiones que siguen un recorrido',
'admin.oidcOnlyMode': 'Desactivar autenticación por contraseña',
'admin.oidcOnlyModeHint':
'Si está activado, solo se permite el inicio de sesión con SSO. El inicio de sesión y registro con contraseña se bloquean.',
+5 -2
View File
@@ -56,8 +56,11 @@ const mobileTrip: TranslationStrings = {
'mobileTrip.rtInfoTitle': 'Cifras del trayecto',
'mobileTrip.rtDesktopNote':
'Estas cifras se ajustan en el escritorio, donde también puedes comparar rutas alternativas y hacer que un día siga una traza importada.',
'mobileTrip.rtPlanOnDesktop':
'La planificación se hace en el escritorio. TREK calcula el trayecto en cuanto un día tiene dos lugares.',
'mobileTrip.planOnDesktop': 'Se planifica en el ordenador',
'mobileTrip.rtDriveOnTwoPlaces': 'TREK calcula el trayecto en cuanto un día tiene dos lugares.',
'mobileTrip.toursEmptyBody': 'Las excursiones guardadas aparecen aquí, listas para añadirlas a un día.',
'mobileTrip.toursCount': '{count} excursiones',
'mobileTrip.toursCount.one': '{count} excursión',
'mobileTrip.rtSearchOffline': 'Hace falta conexión: la búsqueda lee la ruta que queda por delante.',
'mobileTrip.rtBehind': '{time} de retraso sobre lo previsto',
'mobileTrip.rtStart': 'Inicio',
-1
View File
@@ -1,7 +1,6 @@
import type { TranslationStrings } from '../types';
const nav: TranslationStrings = {
'nav.trip': 'Viaje',
'nav.settings': 'Ajustes',
'nav.admin': 'Administración',
'nav.logout': 'Cerrar sesión',
-2
View File
@@ -200,8 +200,6 @@ const tours: TranslationStrings = {
'tours.planner.inspector.profileFocus': 'A {distance}: {elevation}',
'tours.planner.inspector.elevationPlaceholder': 'El perfil se muestra cuando hay datos de altitud de la ruta.',
'tours.planner.gpxNoGeometry': 'La geometría de la ruta no está disponible para esta importación GPX.',
'tours.planner.mobileHint':
'La planificación de excursiones está disponible en tabletas y ordenadores. Aquí puedes consultar las excursiones guardadas y asignarlas a un día.',
'tourTypes.hike': 'Senderismo',
'tourTypes.bike': 'Ruta en bicicleta',
'tourTypes.run': 'Carrera a pie',
+2
View File
@@ -690,6 +690,8 @@ const admin: TranslationStrings = {
'admin.addons.catalog.roadtrip.name': 'Autoreis',
'admin.addons.catalog.roadtrip.description':
'Planeeri sõite koos marsruudipeatuste, sõiduaegade ja automaatselt uuenevate saabumisaegadega',
'admin.addons.catalog.tours.name': 'Retked',
'admin.addons.catalog.tours.description': 'Matkad, rattasõidud ja muud retked, mis järgivad marsruuti',
'admin.addons.catalog.memories.name': 'Fotod (Immich)',
'admin.addons.catalog.memories.description': 'Jaga reisifotosid oma Immichi paigalduse kaudu',
'admin.addons.catalog.mcp.name': 'MCP',
+5 -2
View File
@@ -56,8 +56,11 @@ const mobileTrip: TranslationStrings = {
'mobileTrip.rtInfoTitle': 'Sõiduandmed',
'mobileTrip.rtDesktopNote':
'Neid andmeid saab määrata töölauavaates, kus saad võrrelda ka alternatiivseid marsruute ja määrata päeva järgima imporditud rada.',
'mobileTrip.rtPlanOnDesktop':
'Planeerimine toimub töölauavaates. TREK arvutab sõidu, kui päeval on vähemalt kaks kohta.',
'mobileTrip.planOnDesktop': 'Planeeritakse arvutis',
'mobileTrip.rtDriveOnTwoPlaces': 'TREK arvutab sõidu, kui päeval on vähemalt kaks kohta.',
'mobileTrip.toursEmptyBody': 'Salvestatud retked ilmuvad siia ja neid saab päevale lisada.',
'mobileTrip.toursCount': '{count} retke',
'mobileTrip.toursCount.one': '{count} retk',
'mobileTrip.rtSearchOffline': 'Vajab ühendust: otsing kasutab eesolevat marsruuti.',
'mobileTrip.rtBehind': '{time} plaanist maas',
'mobileTrip.rtStart': 'Algus',
-1
View File
@@ -1,7 +1,6 @@
import type { TranslationStrings } from '../types';
const nav: TranslationStrings = {
'nav.trip': 'Reis',
'nav.settings': 'Seaded',
'nav.admin': 'Haldus',
'nav.logout': 'Logi välja',
-2
View File
@@ -197,8 +197,6 @@ const tours: TranslationStrings = {
'tours.planner.inspector.profileFocus': 'Kaugusel {distance}: {elevation}',
'tours.planner.inspector.elevationPlaceholder': 'Profiil kuvatakse, kui marsruudi kõrgusandmed on saadaval.',
'tours.planner.gpxNoGeometry': 'Selle GPX-impordi marsruudi geomeetria pole saadaval.',
'tours.planner.mobileHint':
'Retki saab planeerida tahvel- ja lauaarvutis. Siin saab salvestatud retki vaadata ja päevadele lisada.',
'tourTypes.hike': 'Matk',
'tourTypes.bike': 'Rattaretk',
'tourTypes.run': 'Jooks',
+2
View File
@@ -635,6 +635,8 @@ const admin: TranslationStrings = {
'admin.addons.catalog.roadtrip.name': 'Road trip',
'admin.addons.catalog.roadtrip.description':
'Planifiez des trajets avec étapes : temps de conduite et heures d’arrivée se recalculent seuls',
'admin.addons.catalog.tours.name': 'Sorties',
'admin.addons.catalog.tours.description': 'Randonnées, balades à vélo et autres sorties qui suivent un itinéraire',
'admin.addons.subtitleBefore': 'Activez ou désactivez des fonctionnalités pour personnaliser votre expérience ',
'admin.addons.subtitleAfter': '.',
'admin.addons.catalog.naver_list_import.name': 'Naver List Import',
+5 -2
View File
@@ -56,8 +56,11 @@ const mobileTrip: TranslationStrings = {
'mobileTrip.rtInfoTitle': 'Chiffres du trajet',
'mobileTrip.rtDesktopNote':
'Ces chiffres se règlent sur ordinateur, où vous pouvez aussi comparer d’autres itinéraires et faire suivre à un jour une trace importée.',
'mobileTrip.rtPlanOnDesktop':
'La planification se fait sur ordinateur. TREK calcule le trajet dès qu’un jour compte deux lieux.',
'mobileTrip.planOnDesktop': 'Planifié sur ordinateur',
'mobileTrip.rtDriveOnTwoPlaces': 'TREK calcule le trajet dès qu’un jour compte deux lieux.',
'mobileTrip.toursEmptyBody': 'Les sorties enregistrées apparaissent ici, prêtes à être ajoutées à un jour.',
'mobileTrip.toursCount': '{count} sorties',
'mobileTrip.toursCount.one': '{count} sortie',
'mobileTrip.rtSearchOffline': 'Connexion nécessaire : la recherche lit l’itinéraire à venir.',
'mobileTrip.rtBehind': '{time} de retard sur le programme',
'mobileTrip.rtStart': 'Début',
-1
View File
@@ -1,7 +1,6 @@
import type { TranslationStrings } from '../types';
const nav: TranslationStrings = {
'nav.trip': 'Voyage',
'nav.settings': 'Paramètres',
'nav.admin': 'Admin',
'nav.logout': 'Déconnexion',
-2
View File
@@ -203,8 +203,6 @@ const tours: TranslationStrings = {
'tours.planner.inspector.elevationPlaceholder':
"Le profil s'affiche lorsque les données d'altitude de l'itinéraire sont disponibles.",
'tours.planner.gpxNoGeometry': "La géométrie de l'itinéraire est indisponible pour cet import GPX.",
'tours.planner.mobileHint':
'La planification des sorties est disponible sur tablette et ordinateur. Vous pouvez consulter les sorties enregistrées et les affecter à une journée ici.',
'tourTypes.hike': 'Randonnée',
'tourTypes.bike': 'Sortie à vélo',
'tourTypes.run': 'Course à pied',
+2
View File
@@ -691,6 +691,8 @@ const admin: TranslationStrings = {
'admin.addons.catalog.roadtrip.name': 'Οδικό ταξίδι',
'admin.addons.catalog.roadtrip.description':
'Σχεδιάστε διαδρομές με στάσεις — οι χρόνοι οδήγησης και άφιξης υπολογίζονται ξανά αυτόματα',
'admin.addons.catalog.tours.name': 'Εκδρομές',
'admin.addons.catalog.tours.description': 'Πεζοπορίες, ποδηλατάδες και άλλες εκδρομές που ακολουθούν μια διαδρομή',
'admin.addons.catalog.memories.name': 'Φωτογραφίες (Immich)',
'admin.addons.catalog.memories.description':
'Μοιραστείτε φωτογραφίες ταξιδιού μέσω της δικής σας εγκατάστασης Immich',
+5 -2
View File
@@ -56,8 +56,11 @@ const mobileTrip: TranslationStrings = {
'mobileTrip.rtInfoTitle': 'Στοιχεία οδήγησης',
'mobileTrip.rtDesktopNote':
'Αυτά τα στοιχεία ορίζονται στον υπολογιστή, όπου μπορείτε επίσης να συγκρίνετε άλλες διαδρομές και να κάνετε μια ημέρα να ακολουθεί ένα εισαγόμενο ίχνος.',
'mobileTrip.rtPlanOnDesktop':
'Ο σχεδιασμός γίνεται στον υπολογιστή. Το TREK υπολογίζει τη διαδρομή μόλις μια ημέρα έχει δύο μέρη.',
'mobileTrip.planOnDesktop': 'Σχεδιάζεται στον υπολογιστή',
'mobileTrip.rtDriveOnTwoPlaces': 'Το TREK υπολογίζει τη διαδρομή μόλις μια ημέρα έχει δύο μέρη.',
'mobileTrip.toursEmptyBody': 'Οι αποθηκευμένες εκδρομές εμφανίζονται εδώ, έτοιμες να μπουν σε μια ημέρα.',
'mobileTrip.toursCount': '{count} εκδρομές',
'mobileTrip.toursCount.one': '{count} εκδρομή',
'mobileTrip.rtSearchOffline': 'Χρειάζεται σύνδεση: η αναζήτηση διαβάζει τη διαδρομή που ακολουθεί.',
'mobileTrip.rtBehind': '{time} πίσω από το πρόγραμμα',
'mobileTrip.rtStart': 'Έναρξη',
-1
View File
@@ -1,7 +1,6 @@
import type { TranslationStrings } from '../types';
const nav: TranslationStrings = {
'nav.trip': 'Ταξίδι',
'nav.settings': 'Ρυθμίσεις',
'nav.admin': 'Διαχείριση',
'nav.logout': 'Αποσύνδεση',
-2
View File
@@ -204,8 +204,6 @@ const tours: TranslationStrings = {
'tours.planner.inspector.elevationPlaceholder':
'Το προφίλ εμφανίζεται όταν είναι διαθέσιμα τα υψομετρικά δεδομένα της διαδρομής.',
'tours.planner.gpxNoGeometry': 'Η γεωμετρία της διαδρομής δεν είναι διαθέσιμη για αυτήν την εισαγωγή GPX.',
'tours.planner.mobileHint':
'Ο σχεδιασμός εκδρομών είναι διαθέσιμος σε τάμπλετ και υπολογιστή. Εδώ μπορείτε να βλέπετε τις αποθηκευμένες εκδρομές και να τις αντιστοιχίζετε σε ημέρες.',
'tourTypes.hike': 'Πεζοπορία',
'tourTypes.bike': 'Ποδηλατική εκδρομή',
'tourTypes.run': 'Τρέξιμο',
+2
View File
@@ -631,6 +631,8 @@ const admin: TranslationStrings = {
'admin.addons.catalog.roadtrip.name': 'Autós út',
'admin.addons.catalog.roadtrip.description':
'Tervezz megállókkal tarkított utakat – a vezetési és érkezési idők maguktól újraszámolódnak',
'admin.addons.catalog.tours.name': 'Túrák',
'admin.addons.catalog.tours.description': 'Gyalog-, kerékpár- és más túrák, amelyek útvonalat követnek',
'admin.addons.catalog.memories.name': 'Fotók (Immich)',
'admin.addons.catalog.memories.description': 'Utazási fotók megosztása az Immich példányon keresztül',
'admin.addons.catalog.mcp.name': 'MCP',
+5 -2
View File
@@ -56,8 +56,11 @@ const mobileTrip: TranslationStrings = {
'mobileTrip.rtInfoTitle': 'Vezetési adatok',
'mobileTrip.rtDesktopNote':
'Ezeket az adatokat asztali gépen adod meg, ott hasonlíthatod össze az útvonalváltozatokat, és állíthatod be, hogy egy nap importált nyomvonalat kövessen.',
'mobileTrip.rtPlanOnDesktop':
'A tervezés asztali gépen történik. Amint egy napon két hely szerepel, a TREK kiszámolja az útvonalat.',
'mobileTrip.planOnDesktop': 'Tervezés számítógépen',
'mobileTrip.rtDriveOnTwoPlaces': 'Amint egy napon két hely szerepel, a TREK kiszámolja az útvonalat.',
'mobileTrip.toursEmptyBody': 'A mentett túrák itt jelennek meg, és egy naphoz rendelhetők.',
'mobileTrip.toursCount': '{count} túra',
'mobileTrip.toursCount.one': '{count} túra',
'mobileTrip.rtSearchOffline': 'Internetkapcsolat kell hozzá: a keresés az előtted lévő útvonalat olvassa be.',
'mobileTrip.rtBehind': '{time} késés a tervhez képest',
'mobileTrip.rtStart': 'Kezdés',
-1
View File
@@ -1,7 +1,6 @@
import type { TranslationStrings } from '../types';
const nav: TranslationStrings = {
'nav.trip': 'Utazás',
'nav.settings': 'Beállítások',
'nav.admin': 'Admin',
'nav.logout': 'Kijelentkezés',
-2
View File
@@ -199,8 +199,6 @@ const tours: TranslationStrings = {
'tours.planner.inspector.elevationPlaceholder':
'A profil akkor jelenik meg, ha rendelkezésre állnak az útvonal magassági adatai.',
'tours.planner.gpxNoGeometry': 'Ehhez a GPX-importhoz nem érhető el útvonalgeometria.',
'tours.planner.mobileHint':
'A túratervezés táblagépen és számítógépen érhető el. Itt megtekintheted és napokhoz rendelheted a mentett túrákat.',
'tourTypes.hike': 'Gyalogtúra',
'tourTypes.bike': 'Kerékpártúra',
'tourTypes.run': 'Futás',
+2
View File
@@ -672,6 +672,8 @@ const admin: TranslationStrings = {
'admin.addons.catalog.roadtrip.name': 'Perjalanan darat',
'admin.addons.catalog.roadtrip.description':
'Rencanakan perjalanan dengan perhentian; waktu berkendara dan tiba dihitung ulang otomatis',
'admin.addons.catalog.tours.name': 'Tur',
'admin.addons.catalog.tours.description': 'Pendakian, bersepeda, dan tur lain yang mengikuti rute',
'admin.addons.catalog.memories.name': 'Foto (Immich)',
'admin.addons.catalog.memories.description': 'Bagikan foto perjalanan melalui instans Immich kamu',
'admin.addons.catalog.mcp.name': 'MCP',
+4 -2
View File
@@ -53,8 +53,10 @@ const mobileTrip: TranslationStrings = {
'mobileTrip.rtInfoTitle': 'Data berkendara',
'mobileTrip.rtDesktopNote':
'Data ini diatur di desktop, di sana kamu juga bisa membandingkan rute alternatif dan membuat satu hari mengikuti jalur yang diimpor.',
'mobileTrip.rtPlanOnDesktop':
'Perencanaan dilakukan di desktop. TREK menghitung perjalanannya begitu satu hari punya dua tempat.',
'mobileTrip.planOnDesktop': 'Direncanakan di komputer',
'mobileTrip.rtDriveOnTwoPlaces': 'TREK menghitung perjalanannya begitu satu hari punya dua tempat.',
'mobileTrip.toursEmptyBody': 'Tur yang tersimpan muncul di sini, siap ditambahkan ke sebuah hari.',
'mobileTrip.toursCount': '{count} tur',
'mobileTrip.rtSearchOffline': 'Perlu koneksi: pencarian membaca rute di depan.',
'mobileTrip.rtBehind': 'terlambat {time} dari rencana',
'mobileTrip.rtStart': 'Mulai',
-1
View File
@@ -1,7 +1,6 @@
import type { TranslationStrings } from '../types';
const nav: TranslationStrings = {
'nav.trip': 'Perjalanan',
'nav.settings': 'Pengaturan',
'nav.admin': 'Admin',
'nav.logout': 'Keluar',
-2
View File
@@ -193,8 +193,6 @@ const tours: TranslationStrings = {
'tours.planner.inspector.profileFocus': 'Pada jarak {distance}: {elevation}',
'tours.planner.inspector.elevationPlaceholder': 'Profil ditampilkan saat data elevasi rute tersedia.',
'tours.planner.gpxNoGeometry': 'Geometri rute tidak tersedia untuk impor GPX ini.',
'tours.planner.mobileHint':
'Perencanaan tur tersedia di tablet dan komputer. Tur tersimpan dapat dilihat dan dijadwalkan di sini.',
'tourTypes.hike': 'Pendakian',
'tourTypes.bike': 'Tur sepeda',
'tourTypes.run': 'Lari',
+2
View File
@@ -626,6 +626,8 @@ const admin: TranslationStrings = {
'admin.addons.catalog.roadtrip.name': 'Viaggio su strada',
'admin.addons.catalog.roadtrip.description':
'Pianifica viaggi con soste: tempi di guida e orari di arrivo si ricalcolano da soli',
'admin.addons.catalog.tours.name': 'Escursioni',
'admin.addons.catalog.tours.description': 'Escursioni a piedi, in bici e altre uscite che seguono un percorso',
'admin.addons.catalog.memories.name': 'Foto (Immich)',
'admin.addons.catalog.memories.description': 'Condividi le foto del viaggio tramite la tua istanza Immich',
'admin.addons.catalog.mcp.name': 'MCP',
+5 -2
View File
@@ -56,8 +56,11 @@ const mobileTrip: TranslationStrings = {
'mobileTrip.rtInfoTitle': 'Dati del tragitto',
'mobileTrip.rtDesktopNote':
'Questi dati si impostano da computer, dove puoi anche confrontare percorsi alternativi e far seguire a un giorno una traccia importata.',
'mobileTrip.rtPlanOnDesktop':
'La pianificazione si fa da computer. TREK calcola il tragitto appena un giorno ha due luoghi.',
'mobileTrip.planOnDesktop': 'Si pianifica dal computer',
'mobileTrip.rtDriveOnTwoPlaces': 'TREK calcola il tragitto appena un giorno ha due luoghi.',
'mobileTrip.toursEmptyBody': 'Le escursioni salvate compaiono qui, pronte da aggiungere a un giorno.',
'mobileTrip.toursCount': '{count} escursioni',
'mobileTrip.toursCount.one': '{count} escursione',
'mobileTrip.rtSearchOffline': 'Serve una connessione: la ricerca legge il percorso che hai davanti.',
'mobileTrip.rtBehind': '{time} di ritardo sul programma',
'mobileTrip.rtStart': 'Inizio',
-1
View File
@@ -1,7 +1,6 @@
import type { TranslationStrings } from '../types';
const nav: TranslationStrings = {
'nav.trip': 'Viaggio',
'nav.settings': 'Impostazioni',
'nav.admin': 'Amministrazione',
'nav.logout': 'Esci',
-2
View File
@@ -199,8 +199,6 @@ const tours: TranslationStrings = {
'tours.planner.inspector.elevationPlaceholder':
'Il profilo viene mostrato quando sono disponibili i dati altimetrici del percorso.',
'tours.planner.gpxNoGeometry': 'La geometria del percorso non è disponibile per questa importazione GPX.',
'tours.planner.mobileHint':
'La pianificazione delle escursioni è disponibile su tablet e computer. Qui puoi visualizzare le escursioni salvate e assegnarle a un giorno.',
'tourTypes.hike': 'Escursione a piedi',
'tourTypes.bike': 'Escursione in bici',
'tourTypes.run': 'Corsa',
+2
View File
@@ -636,6 +636,8 @@ const admin: TranslationStrings = {
'admin.addons.catalog.roadtrip.name': 'ロードトリップ',
'admin.addons.catalog.roadtrip.description':
'立ち寄り先付きのドライブを計画。運転時間と到着時刻は自動で再計算されます',
'admin.addons.catalog.tours.name': 'ツアー',
'admin.addons.catalog.tours.description': 'ルートに沿ったハイキング、サイクリングなどのツアー',
'admin.addons.catalog.memories.name': '写真(Immich)',
'admin.addons.catalog.memories.description': 'Immichで旅行写真を共有',
'admin.addons.catalog.mcp.name': 'MCP',
+4 -1
View File
@@ -53,7 +53,10 @@ const mobileTrip: TranslationStrings = {
'mobileTrip.rtInfoTitle': '走行データ',
'mobileTrip.rtDesktopNote':
'これらの数値はデスクトップで設定します。デスクトップでは、別のルートを比べたり、読み込んだトラックにその日を沿わせたりもできます。',
'mobileTrip.rtPlanOnDesktop': '計画はデスクトップで行います。1日に場所が2か所そろうと、TREKが走行を計算します。',
'mobileTrip.planOnDesktop': '計画はデスクトップで',
'mobileTrip.rtDriveOnTwoPlaces': '1日に場所が2か所そろうと、TREKが走行を計算します。',
'mobileTrip.toursEmptyBody': '保存したツアーがここに表示され、日に追加できます。',
'mobileTrip.toursCount': '{count} 件のツアー',
'mobileTrip.rtSearchOffline': '接続が必要です:この検索は先のルートを読み取ります。',
'mobileTrip.rtBehind': '予定より {time} 遅れ',
'mobileTrip.rtStart': '開始',
-1
View File
@@ -1,7 +1,6 @@
import type { TranslationStrings } from '../types';
const nav: TranslationStrings = {
'nav.trip': '旅行',
'nav.settings': '設定',
'nav.admin': '管理',
'nav.logout': 'ログアウト',
-2
View File
@@ -190,8 +190,6 @@ const tours: TranslationStrings = {
'tours.planner.inspector.profileFocus': '距離{distance}:標高{elevation}',
'tours.planner.inspector.elevationPlaceholder': 'ルートの標高データが取得できると、グラフが表示されます。',
'tours.planner.gpxNoGeometry': 'このGPXインポートにはルートの形状データがありません。',
'tours.planner.mobileHint':
'ツアーの計画はタブレットとパソコンで利用できます。ここでは保存済みのツアーを閲覧し、日程に割り当てられます。',
'tourTypes.hike': 'ハイキング',
'tourTypes.bike': 'サイクリング',
'tourTypes.run': 'ランニング',
+2
View File
@@ -635,6 +635,8 @@ const admin: TranslationStrings = {
'admin.addons.catalog.roadtrip.name': '로드트립',
'admin.addons.catalog.roadtrip.description':
'경유지가 있는 주행을 계획하세요. 운전 시간과 도착 시간이 자동으로 다시 계산됩니다',
'admin.addons.catalog.tours.name': '투어',
'admin.addons.catalog.tours.description': '경로를 따라가는 하이킹, 라이딩 등 투어',
'admin.addons.catalog.memories.name': '사진 (Immich)',
'admin.addons.catalog.memories.description': 'Immich 인스턴스를 통해 여행 사진 공유',
'admin.addons.catalog.mcp.name': 'MCP',
+4 -1
View File
@@ -53,7 +53,10 @@ const mobileTrip: TranslationStrings = {
'mobileTrip.rtInfoTitle': '주행 수치',
'mobileTrip.rtDesktopNote':
'이 수치는 데스크톱에서 설정합니다. 데스크톱에서는 다른 경로를 비교하고, 가져온 트랙을 따라가도록 하루를 맞출 수도 있습니다.',
'mobileTrip.rtPlanOnDesktop': '계획은 데스크톱에서 세웁니다. 하루에 장소가 두 곳 생기면 TREK이 주행을 계산합니다.',
'mobileTrip.planOnDesktop': '계획은 데스크톱에서',
'mobileTrip.rtDriveOnTwoPlaces': '하루에 장소가 두 곳 생기면 TREK이 주행을 계산합니다.',
'mobileTrip.toursEmptyBody': '저장된 투어가 여기에 표시되며 날짜에 추가할 수 있습니다.',
'mobileTrip.toursCount': '투어 {count}개',
'mobileTrip.rtSearchOffline': '연결이 필요합니다: 이 검색은 앞으로 갈 경로를 읽습니다.',
'mobileTrip.rtBehind': '계획보다 {time} 늦음',
'mobileTrip.rtStart': '시작',
-1
View File
@@ -1,7 +1,6 @@
import type { TranslationStrings } from '../types';
const nav: TranslationStrings = {
'nav.trip': '여행',
'nav.settings': '설정',
'nav.admin': '관리자',
'nav.logout': '로그아웃',
-2
View File
@@ -188,8 +188,6 @@ const tours: TranslationStrings = {
'tours.planner.inspector.profileFocus': '{distance} 지점: {elevation}',
'tours.planner.inspector.elevationPlaceholder': '경로의 고도 데이터가 있으면 그래프가 표시됩니다.',
'tours.planner.gpxNoGeometry': '이 GPX 가져오기에는 경로 형상 데이터가 없습니다.',
'tours.planner.mobileHint':
'투어 계획은 태블릿과 컴퓨터에서 이용할 수 있습니다. 여기에서는 저장된 투어를 보고 일정에 배정할 수 있습니다.',
'tourTypes.hike': '하이킹',
'tourTypes.bike': '자전거 투어',
'tourTypes.run': '달리기',
+2
View File
@@ -629,6 +629,8 @@ const admin: TranslationStrings = {
'admin.addons.catalog.roadtrip.name': 'Roadtrip',
'admin.addons.catalog.roadtrip.description':
'Plan ritten met tussenstops; rijtijden en aankomsttijden berekenen zichzelf opnieuw',
'admin.addons.catalog.tours.name': 'Tochten',
'admin.addons.catalog.tours.description': 'Wandelingen, fietstochten en andere tochten langs een route',
'admin.addons.subtitleBefore': 'Schakel functies in of uit om je ',
'admin.addons.subtitleAfter': '-ervaring aan te passen.',
'admin.addons.catalog.naver_list_import.name': 'Naver List Import',
+5 -1
View File
@@ -56,7 +56,11 @@ const mobileTrip: TranslationStrings = {
'mobileTrip.rtInfoTitle': 'Rijgegevens',
'mobileTrip.rtDesktopNote':
'Deze waarden stel je in op de desktop. Daar kun je ook routevarianten vergelijken en een dag een geïmporteerde track laten volgen.',
'mobileTrip.rtPlanOnDesktop': 'Plannen doe je op de desktop. TREK berekent de rit zodra een dag twee plaatsen heeft.',
'mobileTrip.planOnDesktop': 'Plannen op de computer',
'mobileTrip.rtDriveOnTwoPlaces': 'TREK berekent de rit zodra een dag twee plaatsen heeft.',
'mobileTrip.toursEmptyBody': 'Opgeslagen tochten verschijnen hier en kun je aan een dag toevoegen.',
'mobileTrip.toursCount': '{count} tochten',
'mobileTrip.toursCount.one': '{count} tocht',
'mobileTrip.rtSearchOffline': 'Vereist een verbinding: de zoekopdracht leest de route die voor je ligt.',
'mobileTrip.rtBehind': '{time} achter op schema',
'mobileTrip.rtStart': 'Start',
-1
View File
@@ -1,7 +1,6 @@
import type { TranslationStrings } from '../types';
const nav: TranslationStrings = {
'nav.trip': 'Reis',
'nav.settings': 'Instellingen',
'nav.admin': 'Admin',
'nav.logout': 'Uitloggen',
-2
View File
@@ -199,8 +199,6 @@ const tours: TranslationStrings = {
'tours.planner.inspector.elevationPlaceholder':
'Het profiel wordt getoond zodra hoogtegegevens voor de route beschikbaar zijn.',
'tours.planner.gpxNoGeometry': 'De routegeometrie is niet beschikbaar voor deze GPX-import.',
'tours.planner.mobileHint':
'Tochten plannen kan op een tablet of computer. Hier kun je opgeslagen tochten bekijken en aan een dag toewijzen.',
'tourTypes.hike': 'Wandeling',
'tourTypes.bike': 'Fietstocht',
'tourTypes.run': 'Hardlooptocht',
+2
View File
@@ -641,6 +641,8 @@ const admin: TranslationStrings = {
'admin.addons.catalog.roadtrip.name': 'Podróż samochodowa',
'admin.addons.catalog.roadtrip.description':
'Planuj przejazdy z przystankami — czasy jazdy i godziny przyjazdu przeliczają się same',
'admin.addons.catalog.tours.name': 'Wycieczki',
'admin.addons.catalog.tours.description': 'Wędrówki, wycieczki rowerowe i inne trasy',
'admin.addons.catalog.memories.name': 'Zdjęcia (Immich)',
'admin.addons.catalog.memories.description': 'Udostępniaj zdjęcia z podróży za pośrednictwem swojej instancji Immich',
'admin.addons.catalog.mcp.name': 'MCP',
+7 -1
View File
@@ -62,7 +62,13 @@ const mobileTrip: TranslationStrings = {
'mobileTrip.rtInfoTitle': 'Dane jazdy',
'mobileTrip.rtDesktopNote':
'Te dane ustawia się na komputerze, gdzie możesz też porównywać warianty trasy i sprawić, by dzień podążał za zaimportowanym śladem.',
'mobileTrip.rtPlanOnDesktop': 'Planowanie odbywa się na komputerze. TREK wylicza przejazd, gdy dzień ma dwa miejsca.',
'mobileTrip.planOnDesktop': 'Planowanie na komputerze',
'mobileTrip.rtDriveOnTwoPlaces': 'TREK wylicza przejazd, gdy dzień ma dwa miejsca.',
'mobileTrip.toursEmptyBody': 'Zapisane wycieczki pojawią się tutaj i można je dodać do dnia.',
'mobileTrip.toursCount': '{count} wycieczki',
'mobileTrip.toursCount.one': '{count} wycieczka',
'mobileTrip.toursCount.few': '{count} wycieczki',
'mobileTrip.toursCount.many': '{count} wycieczek',
'mobileTrip.rtSearchOffline': 'Wymaga połączenia: wyszukiwanie czyta trasę przed tobą.',
'mobileTrip.rtBehind': '{time} opóźnienia względem planu',
'mobileTrip.rtStart': 'Początek',
-1
View File
@@ -1,7 +1,6 @@
import type { TranslationStrings } from '../types';
const nav: TranslationStrings = {
'nav.trip': 'Podróż',
'nav.settings': 'Ustawienia',
'nav.admin': 'Admin',
'nav.logout': 'Wyloguj',
-2
View File
@@ -207,8 +207,6 @@ const tours: TranslationStrings = {
'tours.planner.inspector.profileFocus': 'Na dystansie {distance}: {elevation}',
'tours.planner.inspector.elevationPlaceholder': 'Profil pojawi się, gdy będą dostępne dane wysokościowe trasy.',
'tours.planner.gpxNoGeometry': 'Geometria trasy jest niedostępna dla tego importu GPX.',
'tours.planner.mobileHint':
'Planowanie wycieczek jest dostępne na tablecie i komputerze. Tutaj możesz przeglądać zapisane wycieczki i przypisywać je do dni.',
'tourTypes.hike': 'Wędrówka piesza',
'tourTypes.bike': 'Wycieczka rowerowa',
'tourTypes.run': 'Bieg',
+2
View File
@@ -650,6 +650,8 @@ const admin: TranslationStrings = {
'admin.addons.catalog.roadtrip.name': 'Автопутешествие',
'admin.addons.catalog.roadtrip.description':
'Планируйте поездки с остановками: время в пути и прибытия пересчитывается автоматически',
'admin.addons.catalog.tours.name': 'Туры',
'admin.addons.catalog.tours.description': 'Походы, велопрогулки и другие туры по маршруту',
'admin.addons.subtitleBefore': 'Включайте или отключайте функции для настройки ',
'admin.addons.subtitleAfter': ' под себя.',
'admin.addons.catalog.naver_list_import.name': 'Naver List Import',
+7 -2
View File
@@ -62,8 +62,13 @@ const mobileTrip: TranslationStrings = {
'mobileTrip.rtInfoTitle': 'Данные о вождении',
'mobileTrip.rtDesktopNote':
'Эти данные задаются на компьютере: там же можно сравнивать другие маршруты и провести день по импортированному треку.',
'mobileTrip.rtPlanOnDesktop':
'Планирование происходит на компьютере. TREK рассчитает маршрут, как только в дне окажется два места.',
'mobileTrip.planOnDesktop': 'Планирование на компьютере',
'mobileTrip.rtDriveOnTwoPlaces': 'TREK рассчитает маршрут, как только в дне окажется два места.',
'mobileTrip.toursEmptyBody': 'Сохранённые туры появятся здесь, их можно добавить в день.',
'mobileTrip.toursCount': '{count} тура',
'mobileTrip.toursCount.one': '{count} тур',
'mobileTrip.toursCount.few': '{count} тура',
'mobileTrip.toursCount.many': '{count} туров',
'mobileTrip.rtSearchOffline': 'Нужна сеть: поиск считывает маршрут впереди.',
'mobileTrip.rtBehind': 'на {time} позже плана',
'mobileTrip.rtStart': 'Начало',
-1
View File
@@ -1,7 +1,6 @@
import type { TranslationStrings } from '../types';
const nav: TranslationStrings = {
'nav.trip': 'Поездка',
'nav.settings': 'Настройки',
'nav.admin': 'Администрирование',
'nav.logout': 'Выйти',
-2
View File
@@ -209,8 +209,6 @@ const tours: TranslationStrings = {
'tours.planner.inspector.profileFocus': 'На расстоянии {distance}: {elevation}',
'tours.planner.inspector.elevationPlaceholder': 'Профиль появится, когда будут доступны данные о высоте маршрута.',
'tours.planner.gpxNoGeometry': 'Геометрия маршрута недоступна для этого импорта GPX.',
'tours.planner.mobileHint':
'Планирование туров доступно на планшете и компьютере. Здесь можно просматривать сохранённые туры и назначать их на дни.',
'tourTypes.hike': 'Пеший поход',
'tourTypes.bike': 'Велотур',
'tourTypes.run': 'Пробежка',
+2
View File
@@ -695,6 +695,8 @@ const admin: TranslationStrings = {
'admin.addons.catalog.roadtrip.name': 'Cesta autom',
'admin.addons.catalog.roadtrip.description':
'Plánujte jazdy so zastávkami na trase, časmi jazdy a časmi príchodu, ktoré sa aktualizujú samy',
'admin.addons.catalog.tours.name': 'Túry',
'admin.addons.catalog.tours.description': 'Pešie, cyklo a ďalšie túry, ktoré vedú po trase',
'admin.addons.catalog.memories.name': 'Fotky (Immich)',
'admin.addons.catalog.memories.description': 'Zdieľajte cestovné fotky cez svoju inštanciu Immich',
'admin.addons.catalog.mcp.name': 'MCP',
+6 -1
View File
@@ -59,7 +59,12 @@ const mobileTrip: TranslationStrings = {
'mobileTrip.rtInfoTitle': 'Údaje o jazde',
'mobileTrip.rtDesktopNote':
'Tieto údaje sa nastavujú na počítači, kde môžete tiež porovnávať alternatívne trasy a nechať deň sledovať importovanú stopu.',
'mobileTrip.rtPlanOnDesktop': 'Plánovanie prebieha na počítači. Len čo má deň dve miesta, TREK jazdu vypočíta.',
'mobileTrip.planOnDesktop': 'Plánuje sa na počítači',
'mobileTrip.rtDriveOnTwoPlaces': 'Len čo má deň dve miesta, TREK jazdu vypočíta.',
'mobileTrip.toursEmptyBody': 'Uložené túry sa zobrazia tu a môžeš ich pridať k dňu.',
'mobileTrip.toursCount': '{count} túr',
'mobileTrip.toursCount.one': '{count} túra',
'mobileTrip.toursCount.few': '{count} túry',
'mobileTrip.rtSearchOffline': 'Vyžaduje pripojenie: hľadanie číta trasu pred vami.',
'mobileTrip.rtBehind': 'o {time} za plánom',
'mobileTrip.rtStart': 'Začiatok',
-1
View File
@@ -1,7 +1,6 @@
import type { TranslationStrings } from '../types';
const nav: TranslationStrings = {
'nav.trip': 'Cesta',
'nav.settings': 'Nastavenia',
'nav.admin': 'Správa',
'nav.logout': 'Odhlásiť sa',
-2
View File
@@ -199,8 +199,6 @@ const tours: TranslationStrings = {
'tours.planner.inspector.profileFocus': 'Vo vzdialenosti {distance}: {elevation}',
'tours.planner.inspector.elevationPlaceholder': 'Profil sa zobrazí, keď budú dostupné výškové údaje trasy.',
'tours.planner.gpxNoGeometry': 'Geometria trasy nie je pre tento import GPX dostupná.',
'tours.planner.mobileHint':
'Plánovanie túr je dostupné na tablete a počítači. Tu si môžete uložené túry prezerať a priraďovať k dňom.',
'tourTypes.hike': 'Pešia túra',
'tourTypes.bike': 'Cyklotúra',
'tourTypes.run': 'Beh',
+2
View File
@@ -694,6 +694,8 @@ const admin: TranslationStrings = {
'admin.addons.catalog.roadtrip.name': 'Bilresa',
'admin.addons.catalog.roadtrip.description':
'Planera körningar med stopp – körtider och ankomsttider räknas om automatiskt',
'admin.addons.catalog.tours.name': 'Turer',
'admin.addons.catalog.tours.description': 'Vandringar, cykelturer och andra turer längs en rutt',
'admin.addons.catalog.memories.name': 'Foton (Immich)',
'admin.addons.catalog.memories.description': 'Dela resefoton via din Immich-instans',
'admin.addons.catalog.mcp.name': 'MCP',
+5 -1
View File
@@ -56,7 +56,11 @@ const mobileTrip: TranslationStrings = {
'mobileTrip.rtInfoTitle': 'Kördata',
'mobileTrip.rtDesktopNote':
'De här värdena ställer du in på datorn. Där kan du också jämföra alternativa vägar och låta en dag följa ett importerat spår.',
'mobileTrip.rtPlanOnDesktop': 'Planeringen sker på datorn. TREK räknar ut körningen så snart en dag har två platser.',
'mobileTrip.planOnDesktop': 'Planeras på datorn',
'mobileTrip.rtDriveOnTwoPlaces': 'TREK räknar ut körningen så snart en dag har två platser.',
'mobileTrip.toursEmptyBody': 'Sparade turer visas här och kan läggas till en dag.',
'mobileTrip.toursCount': '{count} turer',
'mobileTrip.toursCount.one': '{count} tur',
'mobileTrip.rtSearchOffline': 'Kräver anslutning: sökningen läser rutten som ligger framför dig.',
'mobileTrip.rtBehind': '{time} efter planen',
'mobileTrip.rtStart': 'Start',
-1
View File
@@ -1,7 +1,6 @@
import type { TranslationStrings } from '../types';
const nav: TranslationStrings = {
'nav.trip': 'Resa',
'nav.settings': 'Inställningar',
'nav.admin': 'Admin',
'nav.logout': 'Logga ut',
-2
View File
@@ -194,8 +194,6 @@ const tours: TranslationStrings = {
'tours.planner.inspector.profileFocus': 'Vid {distance}: {elevation}',
'tours.planner.inspector.elevationPlaceholder': 'Profilen visas när höjddata för rutten finns tillgängliga.',
'tours.planner.gpxNoGeometry': 'Ruttgeometrin är inte tillgänglig för den här GPX-importen.',
'tours.planner.mobileHint':
'Turplanering är tillgänglig på surfplatta och dator. Här kan du visa sparade turer och tilldela dem till en dag.',
'tourTypes.hike': 'Vandring',
'tourTypes.bike': 'Cykeltur',
'tourTypes.run': 'Löptur',
+2
View File
@@ -816,6 +816,8 @@ const admin: TranslationStrings = {
'admin.addons.catalog.roadtrip.name': 'โรดทริป',
'admin.addons.catalog.roadtrip.description':
'วางแผนการขับรถด้วยจุดแวะตามเส้นทาง เวลาเดินทาง และเวลาไปถึงที่อัปเดตเอง',
'admin.addons.catalog.tours.name': 'ทัวร์',
'admin.addons.catalog.tours.description': 'เดินป่า ปั่นจักรยาน และทัวร์อื่นๆ ที่ไปตามเส้นทาง',
'admin.addons.catalog.dawarich.name': 'Dawarich',
'admin.addons.catalog.dawarich.description':
'อ่านการเยี่ยมชมและเส้นทางที่บันทึกจากอินสแตนซ์ Dawarich ที่ผู้อ่านแต่ละคนเชื่อมต่อเอง',
+4 -1
View File
@@ -53,7 +53,10 @@ const mobileTrip: TranslationStrings = {
'mobileTrip.rtInfoTitle': 'ข้อมูลการขับรถ',
'mobileTrip.rtDesktopNote':
'กำหนดข้อมูลเหล่านี้บนเดสก์ท็อป ซึ่งคุณยังเปรียบเทียบเส้นทางอื่นและให้วันนั้นตามเส้นทางที่นำเข้าได้',
'mobileTrip.rtPlanOnDesktop': 'การวางแผนทำบนเดสก์ท็อป TREK จะคำนวณการขับรถเมื่อวันหนึ่งมีสถานที่สองแห่ง',
'mobileTrip.planOnDesktop': 'วางแผนบนคอมพิวเตอร์',
'mobileTrip.rtDriveOnTwoPlaces': 'TREK จะคำนวณการขับรถเมื่อวันหนึ่งมีสถานที่สองแห่ง',
'mobileTrip.toursEmptyBody': 'ทัวร์ที่บันทึกไว้จะแสดงที่นี่ และเพิ่มลงในวันได้',
'mobileTrip.toursCount': '{count} ทัวร์',
'mobileTrip.rtSearchOffline': 'ต้องเชื่อมต่ออินเทอร์เน็ต: การค้นหาจะอ่านเส้นทางข้างหน้า',
'mobileTrip.rtBehind': 'ช้ากว่าแผน {time}',
'mobileTrip.rtStart': 'เริ่มต้น',
-1
View File
@@ -1,7 +1,6 @@
import type { TranslationStrings } from '../types';
const nav: TranslationStrings = {
'nav.trip': 'การเดินทาง',
'nav.settings': 'การตั้งค่า',
'nav.admin': 'ผู้ดูแลระบบ',
'nav.logout': 'ออกจากระบบ',
-1
View File
@@ -187,7 +187,6 @@ const tours: TranslationStrings = {
'tours.planner.inspector.profileFocus': 'ที่ระยะ {distance}: {elevation}',
'tours.planner.inspector.elevationPlaceholder': 'กราฟจะแสดงเมื่อมีข้อมูลระดับความสูงของเส้นทาง',
'tours.planner.gpxNoGeometry': 'ไม่มีข้อมูลรูปทรงเส้นทางสำหรับทัวร์ที่นำเข้าจาก GPX นี้',
'tours.planner.mobileHint': 'วางแผนทัวร์ได้บนแท็บเล็ตและคอมพิวเตอร์ ที่นี่สามารถดูทัวร์ที่บันทึกไว้และจัดลงวันได้',
'tourTypes.hike': 'เดินป่า',
'tourTypes.bike': 'ทัวร์จักรยาน',
'tourTypes.run': 'วิ่ง',
+1 -1
View File
@@ -20,7 +20,7 @@ const toursModules = import.meta.glob<{ default: TranslationStrings }>('./*/tour
const TOUR_DOMAINS: { file: string; generalKeyCount: number; modules: DomainModules }[] = [
{
file: 'tours',
generalKeyCount: 1336,
generalKeyCount: 1335,
modules: toursModules,
},
{
+2
View File
@@ -679,6 +679,8 @@ const admin: TranslationStrings = {
'admin.addons.catalog.roadtrip.name': 'Yol gezisi',
'admin.addons.catalog.roadtrip.description':
'Duraklı sürüşler planlayın; sürüş ve varış saatleri kendiliğinden yeniden hesaplanır',
'admin.addons.catalog.tours.name': 'Turlar',
'admin.addons.catalog.tours.description': 'Bir rotayı izleyen yürüyüşler, bisiklet ve diğer turlar',
'admin.addons.catalog.memories.name': 'Fotoğraflar (Immich)',
'admin.addons.catalog.memories.description': 'Immich örneğiniz aracılığıyla gezi fotoğraflarını paylaşın',
'admin.addons.catalog.mcp.name': 'MCP',
+5 -1
View File
@@ -56,7 +56,11 @@ const mobileTrip: TranslationStrings = {
'mobileTrip.rtInfoTitle': 'Sürüş değerleri',
'mobileTrip.rtDesktopNote':
'Bu değerler masaüstünde ayarlanır; orada başka yolları karşılaştırabilir ve bir günü içe aktarılmış bir izi takip ettirebilirsiniz.',
'mobileTrip.rtPlanOnDesktop': 'Planlama masaüstünde yapılır. Bir günde iki yer olduğunda TREK sürüşü hesaplar.',
'mobileTrip.planOnDesktop': 'Planlama bilgisayarda',
'mobileTrip.rtDriveOnTwoPlaces': 'Bir günde iki yer olduğunda TREK sürüşü hesaplar.',
'mobileTrip.toursEmptyBody': 'Kaydedilen turlar burada görünür ve bir güne eklenebilir.',
'mobileTrip.toursCount': '{count} tur',
'mobileTrip.toursCount.one': '{count} tur',
'mobileTrip.rtSearchOffline': 'Bağlantı gerekir: arama, ileride kalan rotayı okur.',
'mobileTrip.rtBehind': 'plandan {time} geride',
'mobileTrip.rtStart': 'Başlangıç',
-1
View File
@@ -1,7 +1,6 @@
import type { TranslationStrings } from '../types';
const nav: TranslationStrings = {
'nav.trip': 'Seyahat',
'nav.settings': 'Ayarlar',
'nav.admin': 'Yönetici',
'nav.logout': 'Çıkış yap',
-2
View File
@@ -195,8 +195,6 @@ const tours: TranslationStrings = {
'tours.planner.inspector.elevationPlaceholder':
'Rotanın yükseklik verileri kullanılabilir olduğunda profil gösterilir.',
'tours.planner.gpxNoGeometry': 'Bu GPX içe aktarımı için rota geometrisi kullanılamıyor.',
'tours.planner.mobileHint':
'Tur planlama tablet ve bilgisayarda kullanılabilir. Burada kaydedilmiş turları görüntüleyebilir ve günlere atayabilirsiniz.',
'tourTypes.hike': 'Doğa yürüyüşü',
'tourTypes.bike': 'Bisiklet turu',
'tourTypes.run': 'Koşu',
+2
View File
@@ -647,6 +647,8 @@ const admin: TranslationStrings = {
'admin.addons.catalog.roadtrip.name': 'Автоподорож',
'admin.addons.catalog.roadtrip.description':
'Плануйте поїздки із зупинками — час у дорозі та прибуття перераховуються автоматично',
'admin.addons.catalog.tours.name': 'Тури',
'admin.addons.catalog.tours.description': 'Походи, велопрогулянки та інші тури за маршрутом',
'admin.addons.subtitleBefore': 'Увімкніть або вимкніть функції для налаштування ',
'admin.addons.subtitleAfter': ' під себе.',
'admin.addons.catalog.naver_list_import.name': 'Naver List Import',
+7 -2
View File
@@ -62,8 +62,13 @@ const mobileTrip: TranslationStrings = {
'mobileTrip.rtInfoTitle': 'Дані про водіння',
'mobileTrip.rtDesktopNote':
'Ці дані задаються на комп’ютері: там само можна порівнювати інші маршрути та провести день за імпортованим треком.',
'mobileTrip.rtPlanOnDesktop':
'Планування відбувається на комп’ютері. TREK розрахує маршрут, щойно в дні буде два місця.',
'mobileTrip.planOnDesktop': 'Планування на комп’ютері',
'mobileTrip.rtDriveOnTwoPlaces': 'TREK розрахує маршрут, щойно в дні буде два місця.',
'mobileTrip.toursEmptyBody': 'Збережені тури з’являться тут, їх можна додати до дня.',
'mobileTrip.toursCount': '{count} тури',
'mobileTrip.toursCount.one': '{count} тур',
'mobileTrip.toursCount.few': '{count} тури',
'mobileTrip.toursCount.many': '{count} турів',
'mobileTrip.rtSearchOffline': 'Потрібне з’єднання: пошук зчитує маршрут попереду.',
'mobileTrip.rtBehind': 'на {time} пізніше плану',
'mobileTrip.rtStart': 'Початок',
-1
View File
@@ -1,7 +1,6 @@
import type { TranslationStrings } from '../types';
const nav: TranslationStrings = {
'nav.trip': 'Поїздка',
'nav.settings': 'Налаштування',
'nav.admin': 'Адмін',
'nav.logout': 'Вийти',
-2
View File
@@ -206,8 +206,6 @@ const tours: TranslationStrings = {
'tours.planner.inspector.profileFocus': 'На відстані {distance}: {elevation}',
'tours.planner.inspector.elevationPlaceholder': 'Профіль з’явиться, коли будуть доступні дані про висоту маршруту.',
'tours.planner.gpxNoGeometry': 'Геометрія маршруту недоступна для цього імпорту GPX.',
'tours.planner.mobileHint':
'Планування турів доступне на планшеті й комп’ютері. Тут можна переглядати збережені тури та призначати їх на дні.',
'tourTypes.hike': 'Піший похід',
'tourTypes.bike': 'Велотур',
'tourTypes.run': 'Пробіжка',
+2
View File
@@ -685,6 +685,8 @@ const admin: TranslationStrings = {
'admin.addons.catalog.collab.description': 'Ghi chú, bình chọn, trò chuyện và gợi ý để cùng lên kế hoạch',
'admin.addons.catalog.roadtrip.name': 'Chuyến đi đường bộ',
'admin.addons.catalog.roadtrip.description': 'Lên kế hoạch lái xe có điểm dừng; thời gian lái và giờ đến tự tính lại',
'admin.addons.catalog.tours.name': 'Chuyến tham quan',
'admin.addons.catalog.tours.description': 'Đi bộ đường dài, đạp xe và các chuyến đi theo lộ trình',
'admin.addons.catalog.memories.name': 'Hình ảnh (Immich)',
'admin.addons.catalog.memories.description': 'Chia sẻ ảnh chuyến đi qua phiên bản Immich của bạn',
'admin.addons.catalog.mcp.name': 'MCP',
+4 -2
View File
@@ -53,8 +53,10 @@ const mobileTrip: TranslationStrings = {
'mobileTrip.rtInfoTitle': 'Số liệu lái xe',
'mobileTrip.rtDesktopNote':
'Các số liệu này được đặt trên máy tính, nơi bạn cũng có thể so sánh các lộ trình khác và cho một ngày đi theo tuyến đã nhập.',
'mobileTrip.rtPlanOnDesktop':
'Việc lên kế hoạch diễn ra trên máy tính. TREK tính chặng lái xe ngay khi một ngày có hai địa điểm.',
'mobileTrip.planOnDesktop': 'Lập kế hoạch trên máy tính',
'mobileTrip.rtDriveOnTwoPlaces': 'TREK tính chặng lái xe ngay khi một ngày có hai địa điểm.',
'mobileTrip.toursEmptyBody': 'Các chuyến tham quan đã lưu hiện ở đây, sẵn sàng thêm vào một ngày.',
'mobileTrip.toursCount': '{count} chuyến tham quan',
'mobileTrip.rtSearchOffline': 'Cần có kết nối: việc tìm kiếm đọc lộ trình phía trước.',
'mobileTrip.rtBehind': 'chậm {time} so với kế hoạch',
'mobileTrip.rtStart': 'Bắt đầu',
-1
View File
@@ -1,7 +1,6 @@
import type { TranslationStrings } from '../types';
const nav: TranslationStrings = {
'nav.trip': 'Chuyến đi',
'nav.settings': 'Cài đặt',
'nav.admin': 'Quản trị viên',
'nav.logout': 'Đăng xuất',

Some files were not shown because too many files have changed in this diff Show More