From fe1687e2fa63c3e4264f83b9fcf1738171b493fb Mon Sep 17 00:00:00 2001 From: "textsetu[bot]" Date: Fri, 11 Sep 2026 12:20:40 +0000 Subject: [PATCH] chore(i18n): update translations from TextSetu --- messages/ar.json | 179 +++++++++++++++++++++++++++++++++++++++++++++++ messages/de.json | 179 +++++++++++++++++++++++++++++++++++++++++++++++ messages/fr.json | 179 +++++++++++++++++++++++++++++++++++++++++++++++ textsetu.lock | 19 +++++ 4 files changed, 556 insertions(+) create mode 100644 messages/ar.json create mode 100644 messages/de.json create mode 100644 messages/fr.json create mode 100644 textsetu.lock diff --git a/messages/ar.json b/messages/ar.json new file mode 100644 index 0000000..f72699e --- /dev/null +++ b/messages/ar.json @@ -0,0 +1,179 @@ +{ + "bookings": { + "balance": { + "body": "تستحق نسبة الـ 80% المتبقية قبل 14 يومًا من الوصول. سنرسل تذكيرًا قبل ذلك بسبعة أيام.", + "title": "الرصيد" + }, + "intro": "الشروط المرفقة بحجوزاتك الحالية. لا توجد أي مبالغ مستحقة الدفع هنا — هذا تطبيق تجريبي.", + "note": "توجد كل جملة على هذه الشاشة في TextSetu. عدِّل جملةً، وانشرها، وستصل إلى هنا في التحميل التالي — دون إعادة بناء ودون نشر برمجي.", + "policy": { + "body": "ألغِ قبل أكثر من 14 يومًا من الوصول وستسترد مبلغ التأمين بالكامل. خلال فترة الـ 14 يومًا، نسترد كل ما نتمكن من إعادة تأجيره، وسنبلغك بالنتيجة في كلتا الحالتين خلال يومي عمل.", + "title": "الإلغاء", + "updated": "آخر تعديل في 3 مارس 2026." + }, + "schedule": { + "balance": "الرصيد المتبقي", + "balanceDue": "الرصيد المستحق", + "deposit": "العربون", + "note": "يُحتسب من الحجز، ولا يُخزَّن. لا شيء مستحق الدفع على هذا الموقع.", + "title": "المبالغ المستحقة ومواعيد استحقاقها" + }, + "taxes": { + "body": "تشمل الأسعار ضريبة القيمة المضافة حيثما تنطبق. تُحصَّل ضريبة السياحة الخاصة بالمدينة في مكان الإقامة وهي غير مشمولة في الإجمالي المعروض.", + "title": "الضرائب والرسوم المحلية" + }, + "title": "شروط الحجز" + }, + "common": { + "appName": "تطبيق Traveller", + "footer": { + "disclaimer": "Wanderlane علامة تجارية خيالية أُنشئت كتكامل مرجعي عام لـ TextSetu. لا شيء هنا قابل للحجز ولا تُؤخذ أي مدفوعات.", + "release": "تقديم إصدار المحتوى v{{version}}." + }, + "locale": { + "switch": "تغيير اللغة" + }, + "nav": { + "bookings": "الحجوزات", + "itinerary": "خط سير الرحلة", + "messages": "الرسائل", + "profile": "الملف الشخصي", + "trips": "الرحلات" + }, + "ota": { + "checking": "جارٍ التحقق…", + "checkNow": "التحقق من وجود إصدار جديد", + "explainer": "يُنشر المحتوى من TextSetu ويُجلب هنا في وقت التشغيل، namespace واحد لكل شاشة. تنقّل بين التبويبات ولاحظ أن كل شاشة تجلب نسختها الخاصة. تعني عبارة \"مدمج\" في كل مكان أنه تعذّر الوصول إلى CDN وأن التطبيق يقدّم ما جاء معه عند الإصدار.", + "languages": "اللغات في هذا الإصدار: {{list}}", + "namespaceCount": "{{count}} تحميل", + "namespaceCount_other": "{{count}} تحميلات", + "noManifest": "لا يوجد manifest بعد", + "nothingYet": "لم يتم تحميل أي شيء بعد.", + "release": "الإصدار v{{version}}", + "source": { + "bundled": "مدمج", + "cdn": "CDN", + "error": "فشل", + "missing": "غير منشور" + } + }, + "units": { + "guests": "{{count}} ضيف", + "guests_other": "{{count}} ضيوف", + "nights": "{{count}} ليلة", + "nights_other": "{{count}} ليالٍ" + } + }, + "itinerary": { + "day": "اليوم {{number}}", + "filter": { + "all": "الرحلة كاملة", + "showing": "{{count}} توقّف", + "showing_other": "{{count}} توقّفات" + }, + "intro": "خطتك لـ {{stay}}.", + "items": { + "bread-oven": { + "detail": "بداية مبكرة. تتبع العجين من مطبخ العائلة إلى الفرن الجماعي والعودة.", + "title": "فرن خبز الحي" + }, + "checkin": { + "detail": "سيلتقي بك يوسف عند مدخل الدرب — لا تستطيع سيارة الأجرة الاقتراب أكثر من ذلك.", + "title": "الوصول" + }, + "checkout": { + "detail": "عادةً ما يكون تسجيل المغادرة المتأخر متاحاً في نوفمبر — ما عليك سوى الطلب في الليلة السابقة.", + "title": "المغادرة" + }, + "dinner": { + "detail": "الحجز لأربعة أشخاص. أخبرنا مسبقاً بأي أطعمة لا تتناولها.", + "title": "العشاء على السطح" + }, + "souks": { + "detail": "ثلاث ساعات، تنتهي عند حي الصباغين.", + "title": "الأسواق، مع نادية" + } + }, + "localTime": "جميع الأوقات بالتوقيت المحلي لمكان الإقامة ({{zone}}).", + "title": "مسار الرحلة" + }, + "messages": { + "composer": { + "hint": "لن يُرسل أي شيء. يبقى نصك في علامة التبويب هذه.", + "label": "ردّ على مضيفك", + "placeholder": "اسأل عن المفتاح، أو موقف السيارات، أو أي شيء آخر.", + "send": "إرسال" + }, + "from": { + "host": "يوسف (المضيف)", + "traveller": "أنت" + }, + "intro": "محادثتك مع المضيف.", + "items": { + "airport-pickup": "ممتاز. سأكون هناك ابتداءً من الرابعة إلا ربعًا. شاي النعناع في انتظاركم.", + "arrival-time": "سنصل في الساعة 14:20، لذا سنكون في المنزل على الأرجح حوالي الساعة الرابعة.", + "welcome": "مرحبًا بك! لقد سجلت تواريخ إقامتك لشهر نوفمبر. أعلمني بالموعد التقريبي لوصولك وسألتقي بك عند الدرب." + }, + "note": "هذه الرسائل هي مجرد محتوى تجريبي ولا يتم إرسالها إلى أي مكان.", + "title": "الرسائل" + }, + "profile": { + "currency": { + "body": "مستقلة عن لغة القراءة. قد يقرأ شخص باللغة اليابانية ومع ذلك يدفع باليورو.", + "note": "للعرض فقط. لا يتم تحويل أي شيء هنا — يُكتب المبلغ نفسه بطريقة مختلفة.", + "sample": "يظهر حجز بقيمة 1,240 بالشكل {{amount}}.", + "title": "عملة العرض" + }, + "delivery": { + "distribution": "التوزيع", + "format": "الصيغة", + "languages": "اللغات", + "offline": "لم تتم قراءة أي manifest بعد، لذا فأنت ترى النص المضمّن في هذا الإصدار. هذا هو الوضع الاحتياطي المقصود، وليس خطأ.", + "release": "الإصدار", + "title": "تسليم المحتوى" + }, + "intro": "حسابك، وكيف يحصل هذا التطبيق على نصوصه.", + "language": { + "body": "أنت تقرأ هذا النص باللغة \"{{language}}\". يؤدي تغييرها من أداة التبديل إلى تحميل تلك اللغة من شبكة CDN — دون الحاجة إلى إعادة تحميل الصفحة أو إعادة النشر.", + "title": "اللغة" + }, + "title": "الملف الشخصي" + }, + "trips": { + "cities": { + "kyoto": "كيوتو، اليابان", + "lisbon": "لشبونة، البرتغال", + "marrakech": "مراكش، المغرب" + }, + "intro": "كل شيء محجوز، وكل شيء تم السفر به.", + "labels": { + "dates": "التواريخ", + "guests": "الضيوف", + "hidePlan": "إخفاء الخطة", + "nights": "المدة", + "reference": "المرجع {{reference}}", + "showPlan": "إظهار محطة توقف واحدة ({{count}})", + "showPlan_other": "إظهار {{count}} محطات توقف", + "total": "الإجمالي" + }, + "photoAlt": { + "alfama-atelier": "غرفة نوم بيضاء، فيها قبعة قش ونظارة شمسية تُركت على السرير", + "kyoto": "ممر مرصوف تحت أشجار القيقب الخريفية يؤدي إلى سقف معبد", + "lisbon": "أسطح مكسوة بالقرميد الأحمر تنحدر باتجاه النهر", + "machiya-nishijin": "غرفة بتاتامي مع طاولة منخفضة وكراسٍ أرضية", + "marrakech": "أقماع من البهارات مكدسة على طبول مطلية في كشك بالسوق", + "riad-zitoun": "فناء رياض يُرى من الأسفل، بنوافذ مقوسة وشبكات حديدية" + }, + "status": { + "awaiting_balance": "الرصيد المستحق", + "confirmed": "مؤكد", + "past": "تم السفر" + }, + "stays": { + "alfama-atelier": "ألفاما أتيليه", + "machiya-nishijin": "نيشيجين ماتشيا", + "riad-zitoun": "رياض الزيتون" + }, + "title": "رحلاتك" + } +} diff --git a/messages/de.json b/messages/de.json new file mode 100644 index 0000000..a271bb6 --- /dev/null +++ b/messages/de.json @@ -0,0 +1,179 @@ +{ + "bookings": { + "balance": { + "body": "Die restlichen 80 % sind 14 Tage vor der Anreise fällig. Wir senden sieben Tage vorher eine Erinnerung.", + "title": "Saldo" + }, + "intro": "Die Bedingungen für Ihre aktuellen Buchungen. Hier ist nichts zu zahlen – dies ist eine Demo-App.", + "note": "Jeder Satz auf diesem Bildschirm lebt in TextSetu. Ändere einen, veröffentliche ihn, und er erscheint hier beim nächsten Laden — ohne Rebuild und ohne Deploy.", + "policy": { + "body": "Stornieren Sie mehr als 14 Tage vor der Anreise, wird Ihre Anzahlung vollständig erstattet. Innerhalb von 14 Tagen erstatten wir, was wir erneut vermieten können, und wir informieren Sie in jedem Fall innerhalb von zwei Werktagen.", + "title": "Stornierung", + "updated": "Zuletzt geändert am 3. März 2026." + }, + "schedule": { + "balance": "Restbetrag", + "balanceDue": "Restbetrag", + "deposit": "Anzahlung", + "note": "Aus der Buchung berechnet, nicht gespeichert. Auf dieser Website ist nichts zahlungspflichtig.", + "title": "Was fällig ist, und wann" + }, + "taxes": { + "body": "Preise verstehen sich inklusive Mehrwertsteuer, sofern zutreffend. Die Kurtaxe wird vor Ort erhoben und ist im angezeigten Gesamtpreis nicht enthalten.", + "title": "Steuern und lokale Gebühren" + }, + "title": "Buchungsbedingungen" + }, + "common": { + "appName": "Traveller App", + "footer": { + "disclaimer": "Wanderlane ist eine fiktive Marke, die als öffentliche Referenzintegration für TextSetu erstellt wurde. Hier ist nichts buchbar, und es wird niemals eine Zahlung eingezogen.", + "release": "Liefert Content-Release v{{version}}." + }, + "locale": { + "switch": "Sprache ändern" + }, + "nav": { + "bookings": "Buchungen", + "itinerary": "Reiseplan", + "messages": "Nachrichten", + "profile": "Profil", + "trips": "Reisen" + }, + "ota": { + "checking": "Wird geprüft…", + "checkNow": "Nach einer neuen Version suchen", + "explainer": "Texte werden aus TextSetu veröffentlicht und hier zur Laufzeit abgerufen, ein Namespace pro Bildschirm. Wechsle zwischen den Tabs und beobachte, wie jeder Bildschirm seinen eigenen abruft. „Bundled“ überall bedeutet, dass das CDN nicht erreichbar war und die App das ausliefert, womit sie ausgeliefert wurde.", + "languages": "Sprachen in diesem Release: {{list}}", + "namespaceCount": "{{count}} Ladevorgang", + "namespaceCount_other": "{{count}} Ladevorgänge", + "noManifest": "Noch kein Manifest", + "nothingYet": "Noch nichts geladen.", + "release": "Release v{{version}}", + "source": { + "bundled": "Gebündelt", + "cdn": "CDN", + "error": "Fehlgeschlagen", + "missing": "Nicht veröffentlicht" + } + }, + "units": { + "guests": "{{count}} Gast", + "guests_other": "{{count}} Gäste", + "nights": "{{count}} Nacht", + "nights_other": "{{count}} Nächte" + } + }, + "itinerary": { + "day": "Tag {{number}}", + "filter": { + "all": "Gesamte Reise", + "showing": "{{count}} Stopp", + "showing_other": "{{count}} Stopps" + }, + "intro": "Dein Plan für {{stay}}.", + "items": { + "bread-oven": { + "detail": "Ein früher Start. Begleiten Sie den Teig von einer Familienküche bis zum Gemeinschaftsofen und zurück.", + "title": "Der Brotofen des Viertels" + }, + "checkin": { + "detail": "Youssef wird Sie am Eingang der Derb treffen — das Taxi kommt nicht näher heran.", + "title": "Ankunft" + }, + "checkout": { + "detail": "Ein später Check-out ist im November meist möglich – fragen Sie einfach am Vorabend nach.", + "title": "Abreise" + }, + "dinner": { + "detail": "Für vier Personen gebucht. Teilen Sie uns im Voraus mit, was Sie nicht essen.", + "title": "Abendessen auf dem Dach" + }, + "souks": { + "detail": "Drei Stunden, endet im Viertel der Färber.", + "title": "Die Souks, mit Nadia" + } + }, + "localTime": "Alle Zeiten entsprechen der Ortszeit des Aufenthaltsorts ({{zone}}).", + "title": "Reiseplan" + }, + "messages": { + "composer": { + "hint": "Es wird nichts gesendet. Ihr Text bleibt in diesem Tab.", + "label": "Antwort an deinen Gastgeber", + "placeholder": "Fragen Sie nach dem Schlüssel, dem Parkplatz, was immer Sie wissen möchten.", + "send": "Senden" + }, + "from": { + "host": "Youssef (Gastgeber)", + "traveller": "Du" + }, + "intro": "Ihr Gespräch mit dem Gastgeber.", + "items": { + "airport-pickup": "Perfekt. Ich bin ab Viertel vor vier da. Es wartet Minztee.", + "arrival-time": "Wir landen um 14:20 Uhr, also wahrscheinlich gegen vier im Haus.", + "welcome": "Willkommen! Ich habe deine Daten für November. Gib mir einfach kurz Bescheid, wann du ungefähr landest, dann treffen wir uns am Derb." + }, + "note": "Nachrichten sind Beispielinhalte und werden nirgendwohin gesendet.", + "title": "Nachrichten" + }, + "profile": { + "currency": { + "body": "Unabhängig von der Sprache, in der du liest. Jemand, der auf Japanisch liest, kann trotzdem in Euro bezahlen.", + "note": "Nur zur Anzeige. Hier wird nichts umgerechnet — derselbe Betrag wird nur anders geschrieben.", + "sample": "Eine Buchung über 1.240 wird als {{amount}} angezeigt.", + "title": "Anzeigewährung" + }, + "delivery": { + "distribution": "Verteilung", + "format": "Format", + "languages": "Sprachen", + "offline": "Es wurde noch kein Manifest gelesen, daher sehen Sie die in diesen Build kompilierten Texte. Das ist das vorgesehene Fallback, kein Fehler.", + "release": "Release", + "title": "Inhaltsbereitstellung" + }, + "intro": "Ihr Konto – und wie diese App zu ihren Texten kommt.", + "language": { + "body": "Sie lesen dies gerade auf „{{language}}“. Wenn Sie es im Umschalter ändern, wird diese Sprache vom CDN geladen — ohne Neuladen und ohne Deployment.", + "title": "Sprache" + }, + "title": "Profil" + }, + "trips": { + "cities": { + "kyoto": "Kyoto, Japan", + "lisbon": "Lissabon, Portugal", + "marrakech": "Marrakesch, Marokko" + }, + "intro": "Alles gebucht, und alles schon bereist.", + "labels": { + "dates": "Daten", + "guests": "Gäste", + "hidePlan": "Plan ausblenden", + "nights": "Dauer", + "reference": "Referenz {{reference}}", + "showPlan": "{{count}} Stopp anzeigen", + "showPlan_other": "{{count}} Stopps anzeigen", + "total": "Gesamt" + }, + "photoAlt": { + "alfama-atelier": "Ein weißes Schlafzimmer mit einem Strohhut und einer Sonnenbrille auf dem Bett", + "kyoto": "Ein gepflasterter Weg unter herbstlichen Ahornbäumen, der zu einem Tempeldach führt", + "lisbon": "Rot gedeckte Dächer, die zum Fluss hin abfallen", + "machiya-nishijin": "Ein Tatami-Zimmer mit niedrigem Tisch und Bodenstühlen", + "marrakech": "Gewürzkegel gestapelt auf bemalten Fässern an einem Marktstand", + "riad-zitoun": "Ein Riad-Innenhof von unten gesehen, mit Bogenfenstern und schmiedeeisernen Gittern" + }, + "status": { + "awaiting_balance": "Restbetrag fällig", + "confirmed": "Bestätigt", + "past": "Gereist" + }, + "stays": { + "alfama-atelier": "Alfama Atelier", + "machiya-nishijin": "Das Nishijin Machiya", + "riad-zitoun": "Riad Zitoun" + }, + "title": "Deine Reisen" + } +} diff --git a/messages/fr.json b/messages/fr.json new file mode 100644 index 0000000..e7636ff --- /dev/null +++ b/messages/fr.json @@ -0,0 +1,179 @@ +{ + "bookings": { + "balance": { + "body": "Les 80 % restants deviennent exigibles 14 jours avant l'arrivée. Nous vous enverrons un rappel sept jours avant l'échéance.", + "title": "Solde" + }, + "intro": "Les conditions liées à vos réservations actuelles. Rien n'est à payer ici — c'est une application de démonstration.", + "note": "Chaque phrase de cet écran vit dans TextSetu. Modifiez-en une, publiez, et elle arrive ici au prochain chargement — sans reconstruction ni déploiement.", + "policy": { + "body": "Annulez plus de 14 jours avant l'arrivée et votre acompte est remboursé intégralement. Dans les 14 jours, nous remboursons tout ce que nous parvenons à relouer, et nous vous le ferons savoir, quel que soit le cas, sous deux jours ouvrés.", + "title": "Annulation", + "updated": "Dernière modification le 3 mars 2026." + }, + "schedule": { + "balance": "Solde", + "balanceDue": "Solde dû", + "deposit": "Acompte", + "note": "Calculé à partir de la réservation, non stocké. Rien n'est payable sur ce site.", + "title": "Ce qui est dû, et quand" + }, + "taxes": { + "body": "Les prix incluent la TVA le cas échéant. La taxe de séjour est perçue sur place et n'est pas incluse dans le total affiché.", + "title": "Taxes et frais locaux" + }, + "title": "Conditions de réservation" + }, + "common": { + "appName": "Application Voyageur", + "footer": { + "disclaimer": "Wanderlane est une marque fictive créée comme intégration de référence publique pour TextSetu. Rien ici n'est réservable et aucun paiement n'est jamais effectué.", + "release": "Contenu diffusé : version v{{version}}." + }, + "locale": { + "switch": "Changer de langue" + }, + "nav": { + "bookings": "Réservations", + "itinerary": "Itinéraire", + "messages": "Messages", + "profile": "Profil", + "trips": "Voyages" + }, + "ota": { + "checking": "Vérification…", + "checkNow": "Rechercher une nouvelle version", + "explainer": "Les textes sont publiés depuis TextSetu et récupérés ici à l'exécution, un espace de noms par écran. Passez d'un onglet à l'autre et regardez chaque écran récupérer les siens. \"Bundled\" partout signifie que le CDN n'a pas pu être atteint et que l'application sert le contenu embarqué.", + "languages": "Langues dans cette version : {{list}}", + "namespaceCount": "{{count}} chargement", + "namespaceCount_other": "{{count}} chargements", + "noManifest": "Pas encore de manifeste", + "nothingYet": "Rien n'a encore été chargé.", + "release": "Version v{{version}}", + "source": { + "bundled": "Groupé", + "cdn": "CDN", + "error": "Échec", + "missing": "Non publié" + } + }, + "units": { + "guests": "{{count}} invité", + "guests_other": "{{count}} invités", + "nights": "{{count}} nuit", + "nights_other": "{{count}} nuits" + } + }, + "itinerary": { + "day": "Jour {{number}}", + "filter": { + "all": "Tout le voyage", + "showing": "{{count}} arrêt", + "showing_other": "{{count}} arrêts" + }, + "intro": "Votre plan pour {{stay}}.", + "items": { + "bread-oven": { + "detail": "Un départ matinal. Suivez la pâte d'une cuisine familiale au four commun et retour.", + "title": "Le four à pain du quartier" + }, + "checkin": { + "detail": "Youssef vous attendra à l'entrée du derb — le taxi ne peut pas s'approcher davantage.", + "title": "Arrivée" + }, + "checkout": { + "detail": "Le départ tardif est généralement possible en novembre — il suffit de demander la veille.", + "title": "Départ" + }, + "dinner": { + "detail": "Réservé pour quatre. Prévenez-nous à l'avance de tout ce que vous ne mangez pas.", + "title": "Dîner sur le toit" + }, + "souks": { + "detail": "Trois heures, se terminant au quartier des teinturiers.", + "title": "Les souks, avec Nadia" + } + }, + "localTime": "Toutes les heures sont locales au séjour ({{zone}}).", + "title": "Itinéraire" + }, + "messages": { + "composer": { + "hint": "Rien n'est envoyé. Votre texte reste dans cet onglet.", + "label": "Répondre à votre hôte", + "placeholder": "Renseignez-vous sur la clé, le parking, tout ce que vous voulez.", + "send": "Envoyer" + }, + "from": { + "host": "Youssef (hôte)", + "traveller": "Vous" + }, + "intro": "Votre conversation avec l'hôte.", + "items": { + "airport-pickup": "Parfait. J'y serai dès quatre heures moins le quart. Du thé à la menthe vous attend.", + "arrival-time": "Nous atterrissons à 14h20, donc probablement à la maison vers quatre heures.", + "welcome": "Bienvenue ! J'ai vos dates pour novembre. Faites-moi savoir à peu près à quelle heure vous atterrissez et je vous retrouverai au derb." + }, + "note": "Les messages sont des contenus d'exemple et ne sont envoyés nulle part.", + "title": "Messages" + }, + "profile": { + "currency": { + "body": "Indépendante de la langue dans laquelle vous lisez. Une personne lisant en japonais peut toujours payer en euros.", + "note": "Présentation uniquement. Rien n'est converti ici — le même montant est écrit d'une manière différente.", + "sample": "Une réservation de 1 240 s'affiche comme {{amount}}.", + "title": "Devise d'affichage" + }, + "delivery": { + "distribution": "Distribution", + "format": "Format", + "languages": "Langues", + "offline": "Aucun manifeste n'a encore été lu, vous voyez donc le contenu compilé dans cette version. C'est le repli prévu, pas une erreur.", + "release": "Version", + "title": "Livraison de contenu" + }, + "intro": "Votre compte, et comment cette application obtient son contenu.", + "language": { + "body": "Vous lisez ceci en « {{language}} ». La changer dans le sélecteur charge cette langue depuis le CDN — ni rechargement, ni déploiement.", + "title": "Langue" + }, + "title": "Profil" + }, + "trips": { + "cities": { + "kyoto": "Kyoto, Japon", + "lisbon": "Lisbonne, Portugal", + "marrakech": "Marrakech, Maroc" + }, + "intro": "Tout réservé, et tout déjà parcouru.", + "labels": { + "dates": "Dates", + "guests": "Voyageurs", + "hidePlan": "Masquer le plan", + "nights": "Durée", + "reference": "Référence {{reference}}", + "showPlan": "Afficher {{count}} étape", + "showPlan_other": "Afficher les {{count}} étapes", + "total": "Total" + }, + "photoAlt": { + "alfama-atelier": "Une chambre blanche avec un chapeau de paille et des lunettes de soleil laissés sur le lit.", + "kyoto": "Un chemin pavé sous des érables d'automne menant au toit d'un temple.", + "lisbon": "Toits de tuiles rouges dévalant vers la rivière", + "machiya-nishijin": "Une pièce en tatami avec une table basse et des chaises au sol", + "marrakech": "Des cônes d'épices empilés sur des tambours peints dans un étal de marché", + "riad-zitoun": "Cour d'un riad vue d'en bas, avec des fenêtres cintrées et des grilles en fer" + }, + "status": { + "awaiting_balance": "Solde dû", + "confirmed": "Confirmé", + "past": "Voyagé" + }, + "stays": { + "alfama-atelier": "Alfama Atelier", + "machiya-nishijin": "La machiya de Nishijin", + "riad-zitoun": "Riad Zitoun" + }, + "title": "Vos voyages" + } +} diff --git a/textsetu.lock b/textsetu.lock new file mode 100644 index 0000000..6d54da8 --- /dev/null +++ b/textsetu.lock @@ -0,0 +1,19 @@ +{ + "version": 1, + "projectId": "02612fc3-899b-4c05-a8cf-dff7cb0aa53b", + "sources": {}, + "targets": { + "messages/ar.json": { + "hash": "sha256:427622c77c4c3bb6b07b4c616e78c85ba7aecb3c57dabf4ca133fd6565a7d219", + "at": "2026-09-11T12:20:39.675Z" + }, + "messages/de.json": { + "hash": "sha256:acb1e575130357b30f840f7d725f5d972a54c31406f70ef8baa89851fdf9435b", + "at": "2026-09-11T12:20:39.675Z" + }, + "messages/fr.json": { + "hash": "sha256:4ffbf41a4874487fd6aa4ab858c1ea2b75ce715823549bf1e6e6e5e00fcac7ec", + "at": "2026-09-11T12:20:39.675Z" + } + } +}