mirror of
https://github.com/storytold/lightcraft.git
synced 2026-10-30 13:07:43 -06:00
LR-BEHAV-LOCALIZE: French and Ukrainian for this round's new strings (smart-album rules, keyword list and sets, Synchronize Folder, ratings, crop angle)
The two new catalogs landed alongside PRs that added ~127 strings; the per-language tests require them in every catalog. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
259ddcc1a8
commit
23af0a9d1c
@@ -1734,5 +1734,132 @@
|
||||
"ONNX model": "Modèle ONNX",
|
||||
"commercial use subject to GPL conditions": "usage commercial soumis aux conditions de la GPL",
|
||||
"Camera local tone mapping": "Mappage local des tons de l’appareil",
|
||||
"Apply the local tone mapping stored in the raw (Apple ProRAW), as the camera renders it": "Appliquer le mappage local des tons enregistré dans le fichier raw (Apple ProRAW), comme le rend l’appareil"
|
||||
}
|
||||
"Apply the local tone mapping stored in the raw (Apple ProRAW), as the camera renders it": "Appliquer le mappage local des tons enregistré dans le fichier raw (Apple ProRAW), comme le rend l’appareil",
|
||||
"Decrease Rating": "Diminuer la note",
|
||||
"Increase Rating": "Augmenter la note",
|
||||
"Click to type a value": "Cliquez pour saisir une valeur",
|
||||
"Angle": "Angle",
|
||||
"Video": "Vidéo",
|
||||
"Copyrighted": "Protégé par copyright",
|
||||
"Public Domain": "Domaine public",
|
||||
"Unknown": "Inconnu",
|
||||
"Landscape (wide)": "Paysage (large)",
|
||||
"Portrait (tall)": "Portrait (haut)",
|
||||
"Square": "Carré",
|
||||
"In Color": "En couleur",
|
||||
"No Label": "Sans étiquette",
|
||||
"Choose an album…": "Choisir un album…",
|
||||
"No albums yet": "Aucun album pour l'instant",
|
||||
"Fix the marked rules to save this album.": "Corrigez les règles signalées pour enregistrer cet album.",
|
||||
"Some rules need fixing (Edit Smart Album…):": "Certaines règles sont à corriger (Modifier l'album intelligent…) :",
|
||||
"isn't a field rules know": "n'est pas un champ connu des règles",
|
||||
"can't be tested that way": "ne peut pas être testé ainsi",
|
||||
"is yes or no": "vaut oui ou non",
|
||||
"needs a number": "demande un nombre",
|
||||
"needs a time like 1/250 or 2": "demande une durée comme 1/250 ou 2",
|
||||
"needs a date like 2026, 2026-08 or 2026-08-14": "demande une date comme 2026, 2026-08 ou 2026-08-14",
|
||||
"has the first date after the second": "a la première date après la seconde",
|
||||
"needs two values": "demande deux valeurs",
|
||||
"needs a number more than 0": "demande un nombre supérieur à 0",
|
||||
"needs hours, days, weeks, months or years": "demande des heures, jours, semaines, mois ou années",
|
||||
"isn't one of the choices": "ne fait pas partie des choix",
|
||||
"needs something to look for (or use “is empty”)": "demande quelque chose à chercher (ou utilisez « est vide »)",
|
||||
"needs something to look for (or use “isn't empty”)": "demande quelque chose à chercher (ou utilisez « n'est pas vide »)",
|
||||
"needs text": "demande du texte",
|
||||
"can't match any rating from 0 to 5": "ne peut correspondre à aucune note de 0 à 5",
|
||||
"needs an album": "demande un album",
|
||||
"names an album that no longer exists": "désigne un album qui n'existe plus",
|
||||
"can't test a folder; choose an album in it": "ne peut pas tester un dossier ; choisissez un album qu'il contient",
|
||||
"This group is empty: add a rule or remove it.": "Ce groupe est vide : ajoutez une règle ou supprimez-le.",
|
||||
"needs something to look for (or use “are empty”)": "demande quelque chose à chercher (ou utilisez « sont vides »)",
|
||||
"needs something to look for (or use “aren't empty”)": "demande quelque chose à chercher (ou utilisez « ne sont pas vides »)",
|
||||
"Mo": "Lu",
|
||||
"Tu": "Ma",
|
||||
"We": "Me",
|
||||
"Th": "Je",
|
||||
"Fr": "Ve",
|
||||
"Sa": "Sa",
|
||||
"Su": "Di",
|
||||
"Pick a date": "Choisir une date",
|
||||
"would make this album include itself through other smart albums": "ferait que cet album s'inclue lui-même via d'autres albums intelligents",
|
||||
"Search albums": "Rechercher des albums",
|
||||
"No albums match": "Aucun album ne correspond",
|
||||
"This is the album you're editing": "C'est l'album que vous modifiez",
|
||||
"It tests this album, so testing it back would loop": "Il teste cet album : le tester en retour créerait une boucle",
|
||||
"Copy Name": "Nom de la copie",
|
||||
"In a Stack": "Dans une pile",
|
||||
"File Extension": "Extension de fichier",
|
||||
"Video Duration": "Durée de la vidéo",
|
||||
"Keyword Count": "Nombre de mots-clés",
|
||||
"People Count": "Nombre de personnes",
|
||||
"Shutter Speed": "Vitesse d'obturation",
|
||||
"Cropped": "Recadrée",
|
||||
"Keywords & People": "Mots-clés et personnes",
|
||||
"Description": "Description",
|
||||
"Camera Info": "Infos de l'appareil",
|
||||
"Develop": "Développement",
|
||||
"Keyword List": "Liste des mots-clés",
|
||||
"Filter Keywords": "Filtrer les mots-clés",
|
||||
"No keywords yet": "Aucun mot-clé pour l'instant",
|
||||
"No keywords match": "Aucun mot-clé ne correspond",
|
||||
"Keyword Name": "Nom du mot-clé",
|
||||
"Synonyms": "Synonymes",
|
||||
"Separated by commas": "Séparés par des virgules",
|
||||
"Keyword Tag Options": "Options du mot-clé",
|
||||
"Include on Export": "Inclure à l'exportation",
|
||||
"Export Containing Keywords": "Exporter les mots-clés parents",
|
||||
"Export Synonyms": "Exporter les synonymes",
|
||||
"Create Keyword Tag": "Créer un mot-clé",
|
||||
"Edit Keyword Tag": "Modifier le mot-clé",
|
||||
"Create": "Créer",
|
||||
"No photo has it; the keywords below it go too.": "Aucune photo ne l'a ; les mots-clés qu'il contient sont aussi supprimés.",
|
||||
"Edit Keyword Tag…": "Modifier le mot-clé…",
|
||||
"Put New Keywords Inside This Keyword": "Placer les nouveaux mots-clés dans celui-ci",
|
||||
"Purge Unused Keywords": "Purger les mots-clés inutilisés",
|
||||
"Delete Keyword…": "Supprimer le mot-clé…",
|
||||
"Drop here for the top level": "Déposez ici pour le niveau supérieur",
|
||||
"Their photos and the keywords below them come together under one keyword.": "Leurs photos et les mots-clés qu'ils contiennent sont réunis sous un seul mot-clé.",
|
||||
"Select photos to give them keywords.": "Sélectionnez des photos pour leur attribuer des mots-clés.",
|
||||
"Add to All Selected Photos": "Ajouter à toutes les photos sélectionnées",
|
||||
"Will Export": "Sera exporté",
|
||||
"No keywords are exported": "Aucun mot-clé n'est exporté",
|
||||
"& Containing": "et parents",
|
||||
"Edit Set…": "Modifier le jeu…",
|
||||
"Edit Keyword Set": "Modifier le jeu de mots-clés",
|
||||
"Keywords (⌥1–⌥9)": "Mots-clés (⌥1–⌥9)",
|
||||
"A keyword set needs a name": "Un jeu de mots-clés doit avoir un nom",
|
||||
"Save as a new set": "Enregistrer comme nouveau jeu",
|
||||
"Recent Keywords is built in: choose another name": "Mots-clés récents est intégré : choisissez un autre nom",
|
||||
"Import Keywords…": "Importer des mots-clés…",
|
||||
"Export Keywords…": "Exporter les mots-clés…",
|
||||
"Import Keywords": "Importer des mots-clés",
|
||||
"Export Keywords": "Exporter les mots-clés",
|
||||
"Keyword Lists": "Listes de mots-clés",
|
||||
"Synchronize Folder…": "Synchroniser le dossier…",
|
||||
"Synchronize Folder": "Synchroniser le dossier",
|
||||
"Synchronize": "Synchroniser",
|
||||
"Scanning…": "Analyse…",
|
||||
"Find photos added to or missing from this folder on disk, and XMP sidecars changed by other apps": "Trouver les photos ajoutées à ce dossier sur le disque ou qui en manquent, et les fichiers annexes XMP modifiés par d'autres applications",
|
||||
"Bring the library up to date with this folder and the folders inside it:": "Mettre la bibliothèque à jour avec ce dossier et ses sous-dossiers :",
|
||||
"Import new photos": "Importer les nouvelles photos",
|
||||
"Remove missing photos from the library": "Retirer les photos manquantes de la bibliothèque",
|
||||
"Read metadata updates from XMP sidecars": "Lire les métadonnées mises à jour dans les fichiers annexes XMP",
|
||||
"The library is up to date with this folder.": "La bibliothèque est à jour avec ce dossier.",
|
||||
"Missing photos move to Recently Deleted and can be restored; no file on disk is touched.": "Les photos manquantes vont dans Supprimées récemment et peuvent être restaurées ; aucun fichier sur le disque n'est touché.",
|
||||
"Reading a sidecar replaces the photo's rating, labels, metadata and edits with what it says.": "Lire un fichier annexe remplace la note, les étiquettes, les métadonnées et les retouches de la photo par son contenu.",
|
||||
"Skipped: files already in the library elsewhere": "Ignorés : fichiers déjà ailleurs dans la bibliothèque",
|
||||
"Skipped: files that can't be read": "Ignorés : fichiers illisibles",
|
||||
"This folder isn't there: it was moved or renamed, or its disk isn't connected.": "Ce dossier est introuvable : il a été déplacé ou renommé, ou son disque n'est pas connecté.",
|
||||
"Relink photos whose file was renamed or moved": "Relier les photos dont le fichier a été renommé ou déplacé",
|
||||
"A folder is already being synchronized": "Un dossier est déjà en cours de synchronisation",
|
||||
"Synchronizing…": "Synchronisation…",
|
||||
"Relinked": "Reliées",
|
||||
"Removed": "Retirées",
|
||||
"Metadata read": "Métadonnées lues",
|
||||
"Failed": "Échecs",
|
||||
"Stopped": "Arrêté",
|
||||
"Stopped by an error (see the log)": "Arrêté par une erreur (voir le journal)",
|
||||
"Not saved": "Non enregistré",
|
||||
"A folder is being synchronized": "Un dossier est en cours de synchronisation",
|
||||
"Wait for the import to finish": "Attendez la fin de l'importation"
|
||||
}
|
||||
|
||||
@@ -1928,5 +1928,132 @@
|
||||
"Choose a model below (Use) to start.": "Виберіть модель нижче («Використовувати»), щоб почати.",
|
||||
"Face detector": "Детектор облич",
|
||||
"Detect Faces (Photo menu) needs it: a small one-time download.": "Для виявлення облич (меню «Фото») потрібне невелике одноразове завантаження.",
|
||||
"Recognition models": "Моделі розпізнавання"
|
||||
"Recognition models": "Моделі розпізнавання",
|
||||
"Decrease Rating": "Зменшити оцінку",
|
||||
"Increase Rating": "Збільшити оцінку",
|
||||
"Click to type a value": "Клацніть, щоб ввести значення",
|
||||
"Angle": "Кут",
|
||||
"Video": "Відео",
|
||||
"Copyrighted": "Захищено авторським правом",
|
||||
"Public Domain": "Суспільне надбання",
|
||||
"Unknown": "Невідомо",
|
||||
"Landscape (wide)": "Альбомна (широка)",
|
||||
"Portrait (tall)": "Портретна (висока)",
|
||||
"Square": "Квадрат",
|
||||
"In Color": "Кольорове",
|
||||
"No Label": "Без мітки",
|
||||
"Choose an album…": "Виберіть альбом…",
|
||||
"No albums yet": "Альбомів ще немає",
|
||||
"Fix the marked rules to save this album.": "Виправте позначені правила, щоб зберегти цей альбом.",
|
||||
"Some rules need fixing (Edit Smart Album…):": "Деякі правила треба виправити (Редагувати смарт-альбом…):",
|
||||
"isn't a field rules know": "не є полем, яке знають правила",
|
||||
"can't be tested that way": "не можна перевірити так",
|
||||
"is yes or no": "має бути так або ні",
|
||||
"needs a number": "потребує числа",
|
||||
"needs a time like 1/250 or 2": "потребує часу, як-от 1/250 або 2",
|
||||
"needs a date like 2026, 2026-08 or 2026-08-14": "потребує дати, як-от 2026, 2026-08 або 2026-08-14",
|
||||
"has the first date after the second": "має першу дату після другої",
|
||||
"needs two values": "потребує двох значень",
|
||||
"needs a number more than 0": "потребує числа, більшого за 0",
|
||||
"needs hours, days, weeks, months or years": "потребує годин, днів, тижнів, місяців або років",
|
||||
"isn't one of the choices": "не є одним із варіантів",
|
||||
"needs something to look for (or use “is empty”)": "потребує того, що шукати (або використайте «порожнє»)",
|
||||
"needs something to look for (or use “isn't empty”)": "потребує того, що шукати (або використайте «не порожнє»)",
|
||||
"needs text": "потребує тексту",
|
||||
"can't match any rating from 0 to 5": "не може збігтися з жодною оцінкою від 0 до 5",
|
||||
"needs an album": "потребує альбому",
|
||||
"names an album that no longer exists": "вказує на альбом, якого вже немає",
|
||||
"can't test a folder; choose an album in it": "не може перевірити теку; виберіть альбом у ній",
|
||||
"This group is empty: add a rule or remove it.": "Ця група порожня: додайте правило або видаліть її.",
|
||||
"needs something to look for (or use “are empty”)": "потребує того, що шукати (або використайте «порожні»)",
|
||||
"needs something to look for (or use “aren't empty”)": "потребує того, що шукати (або використайте «не порожні»)",
|
||||
"Mo": "Пн",
|
||||
"Tu": "Вт",
|
||||
"We": "Ср",
|
||||
"Th": "Чт",
|
||||
"Fr": "Пт",
|
||||
"Sa": "Сб",
|
||||
"Su": "Нд",
|
||||
"Pick a date": "Виберіть дату",
|
||||
"would make this album include itself through other smart albums": "змусило б цей альбом включати сам себе через інші смарт-альбоми",
|
||||
"Search albums": "Пошук альбомів",
|
||||
"No albums match": "Немає відповідних альбомів",
|
||||
"This is the album you're editing": "Це альбом, який ви редагуєте",
|
||||
"It tests this album, so testing it back would loop": "Він перевіряє цей альбом, тож зворотна перевірка зациклилася б",
|
||||
"Copy Name": "Назва копії",
|
||||
"In a Stack": "У стосі",
|
||||
"File Extension": "Розширення файлу",
|
||||
"Video Duration": "Тривалість відео",
|
||||
"Keyword Count": "Кількість ключових слів",
|
||||
"People Count": "Кількість людей",
|
||||
"Shutter Speed": "Витримка",
|
||||
"Cropped": "Кадровано",
|
||||
"Keywords & People": "Ключові слова та люди",
|
||||
"Description": "Опис",
|
||||
"Camera Info": "Дані камери",
|
||||
"Develop": "Обробка",
|
||||
"Keyword List": "Список ключових слів",
|
||||
"Filter Keywords": "Фільтрувати ключові слова",
|
||||
"No keywords yet": "Ключових слів ще немає",
|
||||
"No keywords match": "Немає відповідних ключових слів",
|
||||
"Keyword Name": "Назва ключового слова",
|
||||
"Synonyms": "Синоніми",
|
||||
"Separated by commas": "Через кому",
|
||||
"Keyword Tag Options": "Параметри ключового слова",
|
||||
"Include on Export": "Включати під час експорту",
|
||||
"Export Containing Keywords": "Експортувати батьківські ключові слова",
|
||||
"Export Synonyms": "Експортувати синоніми",
|
||||
"Create Keyword Tag": "Створити ключове слово",
|
||||
"Edit Keyword Tag": "Редагувати ключове слово",
|
||||
"Create": "Створити",
|
||||
"No photo has it; the keywords below it go too.": "Його не має жодне фото; вкладені в нього ключові слова теж зникнуть.",
|
||||
"Edit Keyword Tag…": "Редагувати ключове слово…",
|
||||
"Put New Keywords Inside This Keyword": "Додавати нові ключові слова в це ключове слово",
|
||||
"Purge Unused Keywords": "Очистити невикористані ключові слова",
|
||||
"Delete Keyword…": "Видалити ключове слово…",
|
||||
"Drop here for the top level": "Перетягніть сюди для верхнього рівня",
|
||||
"Their photos and the keywords below them come together under one keyword.": "Їхні фото та вкладені ключові слова об’єднуються під одним ключовим словом.",
|
||||
"Select photos to give them keywords.": "Виберіть фото, щоб додати їм ключові слова.",
|
||||
"Add to All Selected Photos": "Додати до всіх вибраних фото",
|
||||
"Will Export": "Буде експортовано",
|
||||
"No keywords are exported": "Ключові слова не експортуються",
|
||||
"& Containing": "і батьківські",
|
||||
"Edit Set…": "Редагувати набір…",
|
||||
"Edit Keyword Set": "Редагувати набір ключових слів",
|
||||
"Keywords (⌥1–⌥9)": "Ключові слова (⌥1–⌥9)",
|
||||
"A keyword set needs a name": "Набір ключових слів потребує назви",
|
||||
"Save as a new set": "Зберегти як новий набір",
|
||||
"Recent Keywords is built in: choose another name": "«Останні ключові слова» — вбудований набір: виберіть іншу назву",
|
||||
"Import Keywords…": "Імпортувати ключові слова…",
|
||||
"Export Keywords…": "Експортувати ключові слова…",
|
||||
"Import Keywords": "Імпортувати ключові слова",
|
||||
"Export Keywords": "Експортувати ключові слова",
|
||||
"Keyword Lists": "Списки ключових слів",
|
||||
"Synchronize Folder…": "Синхронізувати теку…",
|
||||
"Synchronize Folder": "Синхронізувати теку",
|
||||
"Synchronize": "Синхронізувати",
|
||||
"Scanning…": "Сканування…",
|
||||
"Find photos added to or missing from this folder on disk, and XMP sidecars changed by other apps": "Знайти фото, додані до цієї теки на диску або відсутні в ній, і файли XMP, змінені іншими програмами",
|
||||
"Bring the library up to date with this folder and the folders inside it:": "Оновити бібліотеку відповідно до цієї теки та вкладених тек:",
|
||||
"Import new photos": "Імпортувати нові фото",
|
||||
"Remove missing photos from the library": "Прибрати відсутні фото з бібліотеки",
|
||||
"Read metadata updates from XMP sidecars": "Прочитати оновлені метадані з файлів XMP",
|
||||
"The library is up to date with this folder.": "Бібліотека відповідає цій теці.",
|
||||
"Missing photos move to Recently Deleted and can be restored; no file on disk is touched.": "Відсутні фото переходять до «Нещодавно видалених» і їх можна відновити; файли на диску не змінюються.",
|
||||
"Reading a sidecar replaces the photo's rating, labels, metadata and edits with what it says.": "Читання файлу XMP замінює оцінку, мітки, метадані та обробку фото його вмістом.",
|
||||
"Skipped: files already in the library elsewhere": "Пропущено: файли, які вже є в бібліотеці в іншому місці",
|
||||
"Skipped: files that can't be read": "Пропущено: файли, які не вдається прочитати",
|
||||
"This folder isn't there: it was moved or renamed, or its disk isn't connected.": "Цієї теки немає: її переміщено чи перейменовано, або її диск не під’єднано.",
|
||||
"Relink photos whose file was renamed or moved": "Перезв’язати фото, файл яких перейменовано чи переміщено",
|
||||
"A folder is already being synchronized": "Тека вже синхронізується",
|
||||
"Synchronizing…": "Синхронізація…",
|
||||
"Relinked": "Перезв’язано",
|
||||
"Removed": "Прибрано",
|
||||
"Metadata read": "Метадані прочитано",
|
||||
"Failed": "Помилки",
|
||||
"Stopped": "Зупинено",
|
||||
"Stopped by an error (see the log)": "Зупинено через помилку (див. журнал)",
|
||||
"Not saved": "Не збережено",
|
||||
"A folder is being synchronized": "Тека синхронізується",
|
||||
"Wait for the import to finish": "Дочекайтеся завершення імпорту"
|
||||
}
|
||||
|
||||
@@ -609,13 +609,13 @@ mod tests {
|
||||
"Export Keywords…",
|
||||
];
|
||||
let dir = std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join("locales");
|
||||
for code in ["de", "es", "pt-br", "ru", "ja", "zh-hans", "zh-hant"] {
|
||||
for code in ["de", "es", "fr", "pt-br", "ru", "uk", "ja", "zh-hans", "zh-hant"] {
|
||||
let text = std::fs::read_to_string(dir.join(format!("{code}.json"))).unwrap();
|
||||
let catalog: std::collections::HashMap<String, String> = serde_json::from_str(&text).unwrap();
|
||||
for label in labels {
|
||||
assert!(catalog.contains_key(label), "{code}: “{label}”");
|
||||
}
|
||||
}
|
||||
assert_eq!(Locale::ALL.len(), 8, "a language added: list its file above");
|
||||
assert_eq!(Locale::ALL.len(), 10, "a language added: list its file above");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user