mirror of
https://github.com/wekan/wekan.git
synced 2026-11-05 01:20:07 -05:00
Updated translations
This commit is contained in:
1 parent
030c8c524c
commit
b7346d2429
29 files changed
+871
-792
No files matched your search
@@ -7,4 +7,4 @@
|
||||
.column-sets-column { min-width: 14em; max-width: 18em; background: rgba(0, 0, 0, 0.05); border-radius: 4px; padding: 0.4em; }
|
||||
.column-sets-column-header { font-weight: bold; margin-bottom: 0.4em; display: flex; gap: 0.4em; align-items: center; }
|
||||
.column-sets-card { background: #fff; border-radius: 3px; padding: 0.35em 0.5em; margin-bottom: 0.35em; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.15); cursor: grab; }
|
||||
.column-sets-card .card-label { font-size: 0.75em; margin-right: 0.2em; }
|
||||
.column-sets-card .card-label { font-size: 0.75em; margin-inline-end: 0.2em; }
|
||||
+748
-748
File diff suppressed because it is too large.
Load diff
@@ -1098,7 +1098,7 @@
|
||||
"instance-editing-desc": "非成员的已登录用户可以添加、编辑、移动和评论卡片,并在这样做时成为普通成员。",
|
||||
"board-instance-info": "此看板将对<strong>所有已登录的用户</strong>可见。",
|
||||
"profile": "轮廓",
|
||||
"public": "民众",
|
||||
"public": "公开",
|
||||
"public-desc": "该委员会是公开的。任何知道该链接的人都可以看到它,并且会显示在 Google 等搜索引擎中。只有添加到论坛的人员才能编辑。",
|
||||
"custom-private-desc": "自定义 私人的 描述",
|
||||
"custom-private-desc-placeholder": "留空以使用默认 私人的 看板描述",
|
||||
|
||||
@@ -1120,7 +1120,7 @@
|
||||
"restore": "Restaurar",
|
||||
"rescue-card-description": "Mostrar el diálogo de emergencia antes de cerrar las descripciones de las tarjetas no guardada",
|
||||
"rescue-card-description-dialogue": "¿Sobreescribir la descripción actual de la tarjeta con sus cambios?",
|
||||
"save": "Añadir",
|
||||
"save": "Guardar",
|
||||
"search": "Buscar",
|
||||
"rules": "Reglas",
|
||||
"search-cards": "Buscar entre los títulos, las descripciones de las tarjetas/listas y los campos personalizados en este tablero.",
|
||||
|
||||
@@ -1120,7 +1120,7 @@
|
||||
"restore": "Restaurar",
|
||||
"rescue-card-description": "Mostrar el diálogo de emergencia antes de cerrar las descripciones de las tarjetas no guardada",
|
||||
"rescue-card-description-dialogue": "¿Sobreescribir la descripción actual de la tarjeta con sus cambios?",
|
||||
"save": "Añadir",
|
||||
"save": "Guardar",
|
||||
"search": "Buscar",
|
||||
"rules": "Reglas",
|
||||
"search-cards": "Buscar entre los títulos, las descripciones de las tarjetas/listas y los campos personalizados en este tablero.",
|
||||
|
||||
@@ -1120,7 +1120,7 @@
|
||||
"restore": "Restaurar",
|
||||
"rescue-card-description": "Mostrar el diálogo de emergencia antes de cerrar las descripciones de las tarjetas no guardada",
|
||||
"rescue-card-description-dialogue": "¿Sobreescribir la descripción actual de la tarjeta con sus cambios?",
|
||||
"save": "Añadir",
|
||||
"save": "Guardar",
|
||||
"search": "Buscar",
|
||||
"rules": "Reglas",
|
||||
"search-cards": "Buscar entre los títulos, las descripciones de las tarjetas/listas y los campos personalizados en este tablero.",
|
||||
|
||||
@@ -1120,7 +1120,7 @@
|
||||
"restore": "Restaurar",
|
||||
"rescue-card-description": "Mostrar el diálogo de emergencia antes de cerrar las descripciones de las tarjetas no guardada",
|
||||
"rescue-card-description-dialogue": "¿Sobreescribir la descripción actual de la tarjeta con sus cambios?",
|
||||
"save": "Añadir",
|
||||
"save": "Guardar",
|
||||
"search": "Buscar",
|
||||
"rules": "Reglas",
|
||||
"search-cards": "Buscar entre los títulos, las descripciones de las tarjetas/listas y los campos personalizados en este tablero.",
|
||||
|
||||
@@ -1120,7 +1120,7 @@
|
||||
"restore": "Restaurar",
|
||||
"rescue-card-description": "Mostrar el diálogo de emergencia antes de cerrar las descripciones de las tarjetas no guardada",
|
||||
"rescue-card-description-dialogue": "¿Sobreescribir la descripción actual de la tarjeta con sus cambios?",
|
||||
"save": "Añadir",
|
||||
"save": "Guardar",
|
||||
"search": "Buscar",
|
||||
"rules": "Reglas",
|
||||
"search-cards": "Buscar entre los títulos, las descripciones de las tarjetas/listas y los campos personalizados en este tablero.",
|
||||
|
||||
@@ -1120,7 +1120,7 @@
|
||||
"restore": "Restaurar",
|
||||
"rescue-card-description": "Mostrar el diálogo de emergencia antes de cerrar las descripciones de las tarjetas no guardada",
|
||||
"rescue-card-description-dialogue": "¿Sobreescribir la descripción actual de la tarjeta con sus cambios?",
|
||||
"save": "Añadir",
|
||||
"save": "Guardar",
|
||||
"search": "Buscar",
|
||||
"rules": "Reglas",
|
||||
"search-cards": "Buscar entre los títulos, las descripciones de las tarjetas/listas y los campos personalizados en este tablero.",
|
||||
|
||||
@@ -1120,7 +1120,7 @@
|
||||
"restore": "Restaurar",
|
||||
"rescue-card-description": "Mostrar el diálogo de emergencia antes de cerrar las descripciones de las tarjetas no guardada",
|
||||
"rescue-card-description-dialogue": "¿Sobreescribir la descripción actual de la tarjeta con sus cambios?",
|
||||
"save": "Añadir",
|
||||
"save": "Guardar",
|
||||
"search": "Buscar",
|
||||
"rules": "Reglas",
|
||||
"search-cards": "Buscar entre los títulos, las descripciones de las tarjetas/listas y los campos personalizados en este tablero.",
|
||||
|
||||
@@ -1089,7 +1089,7 @@
|
||||
"preview": "Eelvaade",
|
||||
"previewAttachedImagePopup-title": "Eelvaade",
|
||||
"previewClipboardImagePopup-title": "Eelvaade",
|
||||
"private": "Eraldi",
|
||||
"private": "Privaatne",
|
||||
"private-desc": "See foorum on privaatne. Seda saavad vaadata ja muuta ainult tahvlile lisatud inimesed.",
|
||||
"instance": "Sisselogitud kasutajad",
|
||||
"instance-desc": "Kõik sellesse WeKani sisse loginud kasutajad saavad seda tahvlit vaadata. Sisse logimata inimestele seda kunagi ei näidata. Muuta saavad ainult tahvlile lisatud inimesed.",
|
||||
|
||||
@@ -1238,7 +1238,7 @@
|
||||
"wipLimitErrorPopup-dialog-pt1": "تعداد وظایف در این لیست بیشتر از محدودیت WIP تعریفشده شماست.",
|
||||
"wipLimitErrorPopup-dialog-pt2": "لطفاً برخی وظایف را از این لیست خارج کنید یا محدودیت WIP بالاتری تنظیم کنید.",
|
||||
"admin-panel": "پیشخوان مدیریتی",
|
||||
"settings": "تنظمات",
|
||||
"settings": "تنظیمات",
|
||||
"attachment-transfer-limits-title": "محدودیتهای اندازه فایل ضمیمه و API",
|
||||
"attachment-limits": "محدودیتها",
|
||||
"attachment-transfer-limits-description": "حداکثر محدودیت اندازه فایل برای بارگذاری و دانلود را پیکربندی کنید. بافر انتقال API سقفهای ایمنی جداگانهای در سمت سرور دارد.",
|
||||
|
||||
@@ -1237,7 +1237,7 @@
|
||||
"wipLimitErrorPopup-title": "अमान्य WIP सीमा",
|
||||
"wipLimitErrorPopup-dialog-pt1": "The number of tasks अंदर में यह सूची is higher than the WIP limit you've defined.",
|
||||
"wipLimitErrorPopup-dialog-pt2": "Please स्थानांतरित some tasks out of यह list, or set एक higher WIP limit.",
|
||||
"admin-panel": "व्यवस्थापक Panel",
|
||||
"admin-panel": "व्यवस्थापक पैनल",
|
||||
"settings": "सेटिंग्स",
|
||||
"attachment-transfer-limits-title": "संलग्नक और API फ़ाइल आकार सीमाएं",
|
||||
"attachment-limits": "सीमाएं",
|
||||
|
||||
@@ -211,7 +211,7 @@
|
||||
"add-template-container": "შაბლონების კონტეინერის დამატება",
|
||||
"assign-member": "უფლებამოსილი წევრი",
|
||||
"attached": "მიბმული",
|
||||
"attachment": "მიბმული ფიალი",
|
||||
"attachment": "მიბმული ფაილი",
|
||||
"attachment-delete-pop": "მიბმული ფაილის წაშლა მუდმივია. შეუძლებელია მისი უკან დაბრუნება.",
|
||||
"attachment-soft-delete-pop": "მიბმული ფაილი ამ ბარათიდან იშლება, ხოლო თავად ფაილი ინახება. ყველას, ვისაც ბარათის რედაქტირება შეუძლია, შეუძლია მისი აღდგენა ბარათის ისტორიიდან.",
|
||||
"attachmentDeletePopup-title": "გსურთ მიბმული ფაილის წაშლა?",
|
||||
|
||||
@@ -2151,7 +2151,7 @@
|
||||
"sort-boards-title-desc": "Nosaukums (Z → A)",
|
||||
"sort-is-on": "Rūšiavimas įjungtas",
|
||||
"cardsSortPopup-title": "Rūšiuoti korteles",
|
||||
"due-date": "Terminas",
|
||||
"due-date": "Termiņš",
|
||||
"due-complete": "Termiņš pabeigts",
|
||||
"card-mark-complete": "Atzīmēt kā pabeigtu",
|
||||
"card-mark-incomplete": "Atzīmēt kā nepabeigtu",
|
||||
@@ -2432,7 +2432,7 @@
|
||||
"path": "Kelias",
|
||||
"version-name": "Versija-Pavadinimas",
|
||||
"size": "Dydis",
|
||||
"storage": "Sandėliavimas",
|
||||
"storage": "Krātuve",
|
||||
"action": "Darbība",
|
||||
"board-title": "Valdybos pavadinimas",
|
||||
"board-status": "Tāfeles statuss",
|
||||
|
||||
@@ -1083,7 +1083,7 @@
|
||||
"or": "или",
|
||||
"page-maybe-private": "Оваа страница можеби е приватна. Можеби ќе можете да ја видите ако <a href='%s'>се најавите</a>.",
|
||||
"page-not-found": "Страницата не е најдена.",
|
||||
"password": "Парола",
|
||||
"password": "Лозинка",
|
||||
"paste-or-dragdrop": "за да залепите или повлечете и испуштите слика во него (само слики)",
|
||||
"participating": "Учествујем",
|
||||
"preview": "Преглед",
|
||||
@@ -1238,7 +1238,7 @@
|
||||
"wipLimitErrorPopup-dialog-pt1": "Бројот на задачи во овој список е поголем од ограничувањето WIP што го поставивте.",
|
||||
"wipLimitErrorPopup-dialog-pt2": "Преместете некои задачи надвор од овој список или поставете повисоко ограничување WIP.",
|
||||
"admin-panel": "Администраторски панел",
|
||||
"settings": "Настройки",
|
||||
"settings": "Поставки",
|
||||
"attachment-transfer-limits-title": "Ограничувања на големината на датотеки за прилози и API",
|
||||
"attachment-limits": "Ограничувања",
|
||||
"attachment-transfer-limits-description": "Конфигурирајте максимални ограничувања на големината на датотеки за прикачувања и преземања. Баферирањето на API преноси има одделни безбедносни ограничувања на страната на серверот.",
|
||||
@@ -2151,7 +2151,7 @@
|
||||
"sort-boards-title-desc": "Наслов (Z → A)",
|
||||
"sort-is-on": "Сортирањето е вклучено",
|
||||
"cardsSortPopup-title": "Сложи предмете",
|
||||
"due-date": "По крајњем року",
|
||||
"due-date": "Краен рок",
|
||||
"due-complete": "Рок завршен",
|
||||
"card-mark-complete": "Означи како завршена",
|
||||
"card-mark-incomplete": "Означи како незавршена",
|
||||
|
||||
@@ -247,7 +247,7 @@
|
||||
"board-nb-stars": "%sbintang",
|
||||
"board-not-found": "Papan tidak dijumpai",
|
||||
"board-private-info": "Papan ini akan menjadi <strong>peribadi </strong>.",
|
||||
"board-public-info": "Panpan ini akan menjadi <strong>Umum </strong>.",
|
||||
"board-public-info": "Papan ini akan menjadi <strong>Umum</strong>.",
|
||||
"board-drag-drop-reorder-or-click-open": "Seret dan lepas untuk menyusun semula ikon papan. Klik pada ikon papan untuk papar.",
|
||||
"board-open-and-move-between-remaining-and-workspaces": "Klik untuk membuka papan. Gunakan pemegang seret untuk menetapkan papan ke __workspaces__ (lepaskan pada ruang kerja di bar sisi).",
|
||||
"boardChangeColorPopup-title": "Ubah latar belakang Papan",
|
||||
|
||||
@@ -1083,7 +1083,7 @@
|
||||
"or": "o",
|
||||
"page-maybe-private": "Aquesta pagina es benlèu privada. La poiretz benlèu veire en vos <a href='%s'>connectant</a>.",
|
||||
"page-not-found": "Pagina pas trapada",
|
||||
"password": "Mot de Santa-Clara",
|
||||
"password": "Senhal",
|
||||
"paste-or-dragdrop": "per pegar, o lisatz e depausatz un fichièr imatge aicí (imatges solament)",
|
||||
"participating": "Participant",
|
||||
"preview": "Apercebut",
|
||||
|
||||
@@ -271,7 +271,7 @@
|
||||
"zoom-out": "Micșorează",
|
||||
"zoom-level": "Nivel de zoom",
|
||||
"enter-zoom-level": "Introduceți nivelul de zoom (50-300%):",
|
||||
"board-view-cal": "Calendario",
|
||||
"board-view-cal": "Calendar",
|
||||
"board-view-calendar-mode": "Mod calendar",
|
||||
"board-view-multiboard-cal": "Calendar pentru mai multe panouri",
|
||||
"board-view-swimlanes": "Swimlane",
|
||||
@@ -356,7 +356,7 @@
|
||||
"swimlane-archive-pop": "Culoarul nu va mai fi vizibil pe panou după arhivare.",
|
||||
"swimlane-archive-suggest": "Puteți restaura ulterior culoarul din Arhivă, în Setările panoului.",
|
||||
"swimlaneArchivePopup-title": "Arhivați culoarul?",
|
||||
"card-due": "Scadenza",
|
||||
"card-due": "Scadență",
|
||||
"checklist-item-assignee": "Cine este responsabil pentru acest element",
|
||||
"checklist-item-assignee-none": "Nimeni",
|
||||
"checklistItemAssigneePopup-title": "Responsabil",
|
||||
@@ -454,10 +454,10 @@
|
||||
"cardTemplatePopup-title": "Creează șablon",
|
||||
"cards": "Carduri",
|
||||
"cards-count": "Carduri",
|
||||
"cards-count-one": "Scheda",
|
||||
"cards-count-one": "Card",
|
||||
"casSignIn": "Autentificare cu CAS",
|
||||
"samlSignIn": "Autentificare cu SAML",
|
||||
"cardType-card": "Scheda",
|
||||
"cardType-card": "Card",
|
||||
"cardType-linkedCard": "Card asociat",
|
||||
"cardType-linkedBoard": "Panou asociat",
|
||||
"change": "Schimbă",
|
||||
@@ -723,7 +723,7 @@
|
||||
"export": "Exportă",
|
||||
"export-board": "Exportă panoul",
|
||||
"export-board-without-attachments": "fără atașamente",
|
||||
"export-ical-feed": "Calendario (iCal)",
|
||||
"export-ical-feed": "Flux de calendar (iCal)",
|
||||
"user-can-not-export-excel": "Utilizatorul nu poate exporta în Excel",
|
||||
"export-card": "Exportă cardul",
|
||||
"export-card-pdf": "Esporta scheda in PDF",
|
||||
@@ -1023,7 +1023,7 @@
|
||||
"list-delete-suggest-archive": "Puteți muta o listă în arhivă pentru a o elimina din panou și a păstra activitatea.",
|
||||
"lists": "Liste",
|
||||
"swimlanes": "Swimlane",
|
||||
"calendar": "Calendario",
|
||||
"calendar": "Calendar",
|
||||
"gantt": "Gantt",
|
||||
"log-out": "Deconectare",
|
||||
"log-out-everywhere": "Deconectare de pretutindeni",
|
||||
@@ -1643,7 +1643,7 @@
|
||||
"r-when-a-attach": "Când un atașament",
|
||||
"r-when-a-card-matches-advanced-filter": "Când un card corespunde filtrului avansat",
|
||||
"r-when-a-card-title-or-description-contains": "Când titlul sau descrierea cardului conține",
|
||||
"r-when-a-due-date-changed": "Scadenza: data a fost modificată",
|
||||
"r-when-a-due-date-changed": "Când data scadentă este setată sau modificată",
|
||||
"r-when-a-start-date-changed": "Inizio: data a fost modificată",
|
||||
"r-when-a-end-date-changed": "Fine: data a fost modificată",
|
||||
"r-when-a-received-date-changed": "Ricevuta: data a fost modificată",
|
||||
@@ -3185,7 +3185,7 @@
|
||||
"flow-target-count": "Carduri țintă",
|
||||
"flow-finish-days": "Zile până la finalizare",
|
||||
"flow-finish-date": "Data finalizării",
|
||||
"flow-target-date": "Scadenza",
|
||||
"flow-target-date": "Dată țintă",
|
||||
"flow-capacity": "Cel puțin atâtea carduri",
|
||||
"flow-history-days": "Zile de istoric",
|
||||
"flow-beyond-horizon": "Dincolo de orizontul simulării",
|
||||
|
||||
@@ -271,7 +271,7 @@
|
||||
"zoom-out": "Micșorează",
|
||||
"zoom-level": "Nivel de zoom",
|
||||
"enter-zoom-level": "Introduceți nivelul de zoom (50-300%):",
|
||||
"board-view-cal": "Calendario",
|
||||
"board-view-cal": "Calendar",
|
||||
"board-view-calendar-mode": "Mod calendar",
|
||||
"board-view-multiboard-cal": "Calendar (toate panourile)",
|
||||
"board-view-swimlanes": "Swimlane",
|
||||
@@ -356,7 +356,7 @@
|
||||
"swimlane-archive-pop": "Culoarul nu va mai fi vizibil pe panou după arhivare.",
|
||||
"swimlane-archive-suggest": "Puteți restaura ulterior culoarul din Arhivă, în Setările panoului.",
|
||||
"swimlaneArchivePopup-title": "Arhivați culoarul?",
|
||||
"card-due": "Scadenza",
|
||||
"card-due": "Scadență",
|
||||
"checklist-item-assignee": "Cine este responsabil pentru acest element",
|
||||
"checklist-item-assignee-none": "Nimeni",
|
||||
"checklistItemAssigneePopup-title": "Responsabil",
|
||||
@@ -454,10 +454,10 @@
|
||||
"cardTemplatePopup-title": "Creează un șablon",
|
||||
"cards": "Carduri",
|
||||
"cards-count": "Carduri",
|
||||
"cards-count-one": "Scheda",
|
||||
"cards-count-one": "Card",
|
||||
"casSignIn": "Autentificare cu CAS",
|
||||
"samlSignIn": "Autentificare cu SAML",
|
||||
"cardType-card": "Scheda",
|
||||
"cardType-card": "Card",
|
||||
"cardType-linkedCard": "Card asociat",
|
||||
"cardType-linkedBoard": "Panou asociat",
|
||||
"change": "Schimbă",
|
||||
@@ -723,7 +723,7 @@
|
||||
"export": "Exportă",
|
||||
"export-board": "Exportă panoul",
|
||||
"export-board-without-attachments": "fără atașamente",
|
||||
"export-ical-feed": "Calendario (iCal)",
|
||||
"export-ical-feed": "Flux de calendar (iCal)",
|
||||
"user-can-not-export-excel": "Utilizatorul nu poate exporta în Excel",
|
||||
"export-card": "Exportă cardul",
|
||||
"export-card-pdf": "Esporta scheda in PDF",
|
||||
@@ -1023,7 +1023,7 @@
|
||||
"list-delete-suggest-archive": "Puteți muta o listă în arhivă pentru a o elimina din panou și a păstra activitatea.",
|
||||
"lists": "Liste",
|
||||
"swimlanes": "Swimlane",
|
||||
"calendar": "Calendario",
|
||||
"calendar": "Calendar",
|
||||
"gantt": "Gantt",
|
||||
"log-out": "Deconectare",
|
||||
"log-out-everywhere": "Deconectare peste tot",
|
||||
@@ -3185,7 +3185,7 @@
|
||||
"flow-target-count": "Carduri țintă",
|
||||
"flow-finish-days": "Zile până la finalizare",
|
||||
"flow-finish-date": "Data finalizării",
|
||||
"flow-target-date": "Scadenza",
|
||||
"flow-target-date": "Dată țintă",
|
||||
"flow-capacity": "Cel puțin atâtea carduri",
|
||||
"flow-history-days": "Zile de istoric",
|
||||
"flow-beyond-horizon": "Dincolo de orizontul simulării",
|
||||
|
||||
@@ -1089,7 +1089,7 @@
|
||||
"preview": "Hakiki",
|
||||
"previewAttachedImagePopup-title": "Hakiki",
|
||||
"previewClipboardImagePopup-title": "Hakiki",
|
||||
"private": "Privat",
|
||||
"private": "Binafsi",
|
||||
"private-desc": "Bodi hii ni ya kibinafsi. Watu walioongezwa kwenye ubao pekee ndio wanaoweza kuitazama na kuihariri.",
|
||||
"instance": "Watumiaji walioingia",
|
||||
"instance-desc": "Kila mtumiaji aliyeingia katika WeKan hii anaweza kuona bodi hii. Haionyeshwi kamwe kwa watu ambao hawajaingia. Watu walioongezwa kwenye bodi pekee ndio wanaoweza kuhariri.",
|
||||
|
||||
@@ -2432,7 +2432,7 @@
|
||||
"path": "Hi Xitsonga: mhaka",
|
||||
"version-name": "mhaka-vito",
|
||||
"size": "Hi Xitsonga: mhaka",
|
||||
"storage": "Hi Xitsonga: mhaka",
|
||||
"storage": "Vuhlayiselo",
|
||||
"action": "xiendlo",
|
||||
"board-title": "bodo nhlokomhaka",
|
||||
"board-status": "bodo xiyimo",
|
||||
|
||||
@@ -125,7 +125,7 @@
|
||||
"unset-default-board-template": "Standart doska shablonini olib tashlash",
|
||||
"activity-dueDate": "to'lov sanasi tahrirlangan %s / %s",
|
||||
"activity-endDate": "tahrirlangan tugash sanasi %s / %s",
|
||||
"add-attachment": "Qo'shiq qo'shish",
|
||||
"add-attachment": "Ilova qo'shish",
|
||||
"add-board": "Taxta qo'shish",
|
||||
"add-template": "Shablon qo'shish",
|
||||
"add-card": "Karta qo'shish",
|
||||
|
||||
@@ -2432,7 +2432,7 @@
|
||||
"path": "Laluan",
|
||||
"version-name": "Nama Versi",
|
||||
"size": "Saiz",
|
||||
"storage": "Storan",
|
||||
"storage": "Lưu trữ",
|
||||
"action": "Hoạt động",
|
||||
"board-title": "Judul Papan",
|
||||
"board-status": "Trạng thái bảng",
|
||||
@@ -2621,7 +2621,7 @@
|
||||
"sandstorm-migration-success": "Thành công",
|
||||
"sandstorm-migration-failed": "Thất bại",
|
||||
"sandstorm-migration-pending": "Chưa di trú",
|
||||
"sandstorm-storage-item": "Storan",
|
||||
"sandstorm-storage-item": "Lưu trữ",
|
||||
"sandstorm-disk-usage": "Sử dụng đĩa",
|
||||
"sandstorm-raw-mongodb": "Tệp cơ sở dữ liệu MongoDB 3 thô",
|
||||
"sandstorm-delete-raw-mongodb": "Xóa các tệp cơ sở dữ liệu MongoDB thô",
|
||||
|
||||
@@ -1083,7 +1083,7 @@
|
||||
"or": "אָדער",
|
||||
"page-maybe-private": "דער בלאַט קען זיין פּריוואַט. איר קען זיין ביכולת צו זען עס דורך <a href='%s'>לאָגינג אין</a>.",
|
||||
"page-not-found": "בלאַט ניט געפונען.",
|
||||
"password": "שפּריכוואָרט",
|
||||
"password": "פּאַראָל",
|
||||
"paste-or-dragdrop": "צו פּאַפּ, אָדער שלעפּן און פאַלן בילד טעקע (בלויז בילד)",
|
||||
"participating": "פּאַרטיסאַפּייטינג",
|
||||
"preview": "פאָרויסיקע ווייַזונג",
|
||||
|
||||
@@ -211,7 +211,7 @@
|
||||
"add-template-container": "新增模板容器",
|
||||
"assign-member": "指定成員",
|
||||
"attached": "隨附的",
|
||||
"attachment": "依戀",
|
||||
"attachment": "附件",
|
||||
"attachment-delete-pop": "刪除附件是永久性的。無法撤銷。",
|
||||
"attachment-soft-delete-pop": "附件會由呢張卡片移除,檔案會保留。任何可以編輯呢張卡片嘅人都可以喺卡片歷史入面恢復佢。",
|
||||
"attachmentDeletePopup-title": "刪除附件?",
|
||||
|
||||
@@ -262,7 +262,7 @@
|
||||
"boardMenuPopup-title": "ⵜⵉⵙⵖⴰⵍ ⵏ ⵜⴼⵍⵡⵉⵜ",
|
||||
"allBoardsMenuPopup-title": "ⵜⵉⵙⵖⴰⵍ",
|
||||
"boardChangeViewPopup-title": "ⵜⴰⵎⵓⵖⵍⵉ ⵏ ⵜⴼⵍⵡⵉⵜ",
|
||||
"boards": "Tifelwin",
|
||||
"boards": "ⵜⵉⴼⵍⵡⵉⵏ",
|
||||
"board-view": "ⵜⴰⵎⵓⵖⵍⵉ ⵏ ⵜⴼⵍⵡⵉⵜ",
|
||||
"desktop-mode": "ⵜⴰⵍⵖⴰ Desktop",
|
||||
"mobile-mode": "ⵜⴰⵍⵖⴰ Mobile",
|
||||
@@ -1986,7 +1986,7 @@
|
||||
"person": "شخص",
|
||||
"my-cards": "ⵜⵉⴽⴰⵕⴹⵉⵡⵉⵏ ⵉⵏⵓ",
|
||||
"my-attachments": "ⵜⵉⵙⵉⵡⴰⵢ ⵢⵔⵏⴰⵏ ⵉⵏⵓ",
|
||||
"card": "Takarḍa",
|
||||
"card": "ⵜⴰⴽⴰⵔⴹⴰ",
|
||||
"board-table-card-title-wrap-on": "ⵉⵣⵡⴰⵍⵏ ⵏ ⵜⴽⴰⵕⴹⵉⵡⵉⵏ ⵜⵜⵓⴽⴽⵜⵙⵏ ⴳ ⵓⵎⵎⴰⵙ ⵏ ⵓⴳⴳⴰⵔ ⵏ ⵢⴰⵜ ⵜⵜⴰⵕⵕⴰ. ⵙⵉⵜⵢ ⵉⵏⵏⴰ ⴰⴷ ⵜⵏⵇⵇⵙⵜ ⵙ ⵜⵏⵇⵇⵉⴹⵉⵏ.",
|
||||
"board-table-card-title-wrap-off": "ⵉⵣⵡⴰⵍⵏ ⵏ ⵜⴽⴰⵕⴹⵉⵡⵉⵏ ⵜⵜⵓⵏⵇⵇⵙⵏ ⵙ ⵜⵏⵇⵇⵉⴹⵉⵏ. ⵙⵉⵜⵢ ⵉⵏⵏⴰ ⴰⴷ ⵜⵜⵓⴽⴽⵜⵙⵏ ⴳ ⵓⴳⴳⴰⵔ ⵏ ⵢⴰⵜ ⵜⵜⴰⵕⵕⴰ.",
|
||||
"board-table-group-by-swimlane-on": "ⵜⵉⴽⴰⵕⴹⵉⵡⵉⵏ ⵜⵜⵓⵙⵎⵓⵏⵏⵜ ⵙ ⵓⴱⵔⵉⴷ. ⵙⵉⵜⵢ ⵉⵏⵏⴰ ⴰⴷ ⵜⵏⵜ ⵜⵙⴽⵏⵜ ⴷ ⵜⴰⵍⵍⵓⵙⵜ ⵜⴰⵣⴰⵍⵍⴰⵏⵜ.",
|
||||
|
||||
@@ -1056,6 +1056,9 @@ const LOCALE_INVARIANTS = {
|
||||
'blockly-MATH_SUBTRACTION_SYMBOL_ARIA', 'blockly-MATH_TRIG_COS',
|
||||
'blockly-MATH_TRIG_SIN', 'blockly-SHIFT_KEY', 'blockly-SHORTCUTS_GENERAL',
|
||||
'blockly-TAB_KEY', 'blockly-WINDOWS', 'scrum-sprint',
|
||||
// Romanian "calendar" and "card" (DEX); the file had the Italian
|
||||
// "Calendario" and "Scheda" in these.
|
||||
'calendar', 'board-view-cal', 'cardType-card', 'cards-count-one',
|
||||
])])),
|
||||
rup: new Set(['color-indigo', 'color-magenta']),
|
||||
lld: new Set(['move-progress-file']),
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
'use strict';
|
||||
|
||||
// Wrong-language values found by the 2026-10-14 translation rounds, replaced
|
||||
// with the language each locale tag names.
|
||||
// Run: node tests/wrongLanguageCorrections20261014.test.cjs
|
||||
|
||||
const assert = require('node:assert/strict');
|
||||
const fs = require('node:fs');
|
||||
const path = require('node:path');
|
||||
|
||||
const ROOT = path.join(__dirname, '..');
|
||||
const locale = tag => JSON.parse(fs.readFileSync(path.join(ROOT, `imports/i18n/data/${tag}.i18n.json`), 'utf8'));
|
||||
const en = locale('en');
|
||||
const tokens = value => (String(value).match(/__[A-Za-z0-9_]+__|%(?:\d+\$)?[sd]/g) || []).sort();
|
||||
|
||||
(async () => {
|
||||
// Spanish: "Añadir" is Add, and it was on every Save button.
|
||||
for (const tag of ['es', 'es-CL', 'es-CO', 'es-LA', 'es-MX', 'es-PY', 'es_CO']) {
|
||||
assert.equal(locale(tag).save, 'Guardar', tag);
|
||||
}
|
||||
console.log(' ok - Spanish Save says Guardar');
|
||||
|
||||
// Bosnian is written in Latin script here; its file had 748 Serbian
|
||||
// Cyrillic values. None is left, and every placeholder survived.
|
||||
const bs = locale('bs');
|
||||
const cyrillic = Object.entries(bs).filter(([, v]) => /[Ѐ-ӿ]/.test(v)).map(([k]) => k);
|
||||
assert.deepEqual(cyrillic, [], 'no Cyrillic in the Bosnian file');
|
||||
for (const [key, value] of Object.entries(bs)) {
|
||||
if (key in en) assert.deepEqual(tokens(value), tokens(en[key]), `bs ${key} keeps its placeholders`);
|
||||
}
|
||||
assert.equal(bs.storage, 'Skladište');
|
||||
assert.equal(bs['log-in'], 'Prijavi se');
|
||||
console.log(' ok - Bosnian in Latin script, placeholders intact');
|
||||
|
||||
// One value each, in the locale's own language.
|
||||
const expected = {
|
||||
ro: { 'card-due': 'Scadență', calendar: 'Calendar' },
|
||||
'ro-RO': { 'card-due': 'Scadență', calendar: 'Calendar' },
|
||||
lv: { storage: 'Krātuve', 'due-date': 'Termiņš' },
|
||||
'vi-VN': { storage: 'Lưu trữ' },
|
||||
zgh: { boards: 'ⵜⵉⴼⵍⵡⵉⵏ', card: 'ⵜⴰⴽⴰⵔⴹⴰ' },
|
||||
fa: { settings: 'تنظیمات' },
|
||||
mk: { 'due-date': 'Краен рок', settings: 'Поставки', password: 'Лозинка' },
|
||||
ka: { attachment: 'მიბმული ფაილი' },
|
||||
'et-EE': { private: 'Privaatne' },
|
||||
uz: { 'add-attachment': "Ilova qo'shish" },
|
||||
yue_CN: { attachment: '附件' },
|
||||
cmn: { public: '公开' },
|
||||
hi: { 'admin-panel': 'व्यवस्थापक पैनल' },
|
||||
sw: { private: 'Binafsi' },
|
||||
yi: { password: 'פּאַראָל' },
|
||||
oc: { password: 'Senhal' },
|
||||
ts: { storage: 'Vuhlayiselo' },
|
||||
};
|
||||
for (const [tag, values] of Object.entries(expected)) {
|
||||
const data = locale(tag);
|
||||
for (const [key, value] of Object.entries(values)) assert.equal(data[key], value, `${tag} ${key}`);
|
||||
}
|
||||
assert.match(locale('ms')['board-public-info'], /^Papan ini/, 'not the typo "Panpan"');
|
||||
console.log(' ok - the single values');
|
||||
|
||||
// Negative: the wrong words are gone, whatever key they were under.
|
||||
const gone = {
|
||||
ro: /Scadenza|Calendario|Scheda/, 'ro-RO': /Scadenza|Calendario|Scheda/, lv: /Sandėliavimas|\bTerminas\b/,
|
||||
'vi-VN': /\bStoran\b/, mk: /Настройки|По крајњем/, fa: /تنظمات/, uz: /Qo'shiq qo'shish/,
|
||||
yue_CN: /依戀/, ts: /Hi Xitsonga: mhaka/, oc: /Santa-Clara/,
|
||||
};
|
||||
for (const [tag, pattern] of Object.entries(gone)) {
|
||||
for (const [key, value] of Object.entries(locale(tag))) assert.doesNotMatch(value, pattern, `${tag} ${key}`);
|
||||
}
|
||||
console.log(' ok - and nowhere else in those files');
|
||||
console.log('\nwrongLanguageCorrections20261014: all tests passed');
|
||||
})().catch(error => {
|
||||
console.error(error);
|
||||
process.exit(1);
|
||||
});
|
||||
Reference in new issue
Block a user