mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-11-14 05:24:44 +00:00
Merge pull request #7214 from dotCooCoo/fix/i18n-select-a-path-reason
i18n: the "select a path" reason is translated in every complete-message language
This commit is contained in:
@@ -5606,6 +5606,7 @@ digits Malayalam Malaiàlam
|
||||
@msgplural Discarded {n} recovered document|Discarded {n} recovered documents S’ha descartat {n} document recuperat|S’han descartat {n} documents recuperats
|
||||
@msg divide into 1 to {MAX_PIECES} slices divideix en 1 a {MAX_PIECES} talls
|
||||
@msg Divide Objects Below: select a path Divideix els objectes de sota: seleccioneu un traçat
|
||||
@msg select a path seleccioneu un traçat
|
||||
@msg Divide Objects Below: select exactly one path Divideix els objectes de sota: seleccioneu exactament un traçat
|
||||
@msg docking action contains an unknown panel or an excessive split path l’acció d’acoblament conté un panell desconegut o un camí de divisió excessiu
|
||||
@msg Downloaded {what} S’ha baixat {what}
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -4704,6 +4704,7 @@ imageTrace Outline Obrys
|
||||
@msg Plug-ins can't be loaded from {path}: {e} Zásuvné moduly nelze načíst z {path}: {e}
|
||||
@msg direct-select anchor points to cut at (not the end points of open paths) nástrojem Přímý výběr vyberte kotevní body, kde se má cesta rozdělit (ne koncové body otevřených cest)
|
||||
@msg Divide Objects Below: select a path Rozdělit objekty pod: vyberte cestu
|
||||
@msg select a path vyberte cestu
|
||||
@msg Divide Objects Below: select exactly one path Rozdělit objekty pod: vyberte právě jednu cestu
|
||||
@msg Downloaded {what} Staženo: {what}
|
||||
@msg Expand Appearance: the selection has a basic appearance Rozložit vzhled: výběr má základní vzhled
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -4317,6 +4317,7 @@ theme Appearance Erscheinungsbild
|
||||
@msg Plug-ins can't be loaded from {path}: {e} Aus {path} können keine Plug-ins geladen werden: {e}
|
||||
@msg direct-select anchor points to cut at (not the end points of open paths) wählen Sie mit der Direktauswahl die Ankerpunkte aus, an denen geschnitten werden soll (nicht die Endpunkte offener Pfade)
|
||||
@msg Divide Objects Below: select a path Darunterliegende Objekte aufteilen: Wählen Sie einen Pfad aus
|
||||
@msg select a path Wählen Sie einen Pfad aus
|
||||
@msg Divide Objects Below: select exactly one path Darunterliegende Objekte aufteilen: Wählen Sie genau einen Pfad aus
|
||||
@msg Downloaded {what} {what} heruntergeladen
|
||||
@msg Expand Appearance: the selection has a basic appearance Aussehen umwandeln: Die Auswahl hat ein einfaches Aussehen
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -2464,6 +2464,7 @@ axis Both Και τα δύο
|
||||
@msg Plug-ins can't be loaded from {path}: {e} Δεν είναι δυνατή η φόρτωση πρόσθετων από το {path}: {e}
|
||||
@msg direct-select anchor points to cut at (not the end points of open paths) Επιλέξτε άμεσα τα σημεία αγκύρωσης όπου θα γίνει η αποκοπή (όχι τα τελικά σημεία ανοιχτών διαδρομών)
|
||||
@msg Divide Objects Below: select a path Διαίρεση αντικειμένων από κάτω: επιλέξτε μια διαδρομή
|
||||
@msg select a path επιλέξτε μια διαδρομή
|
||||
@msg Divide Objects Below: select exactly one path Διαίρεση αντικειμένων από κάτω: επιλέξτε ακριβώς μία διαδρομή
|
||||
@msg Downloaded {what} Έγινε λήψη του {what}
|
||||
@msg Expand Appearance: the selection has a basic appearance Επέκταση εμφάνισης: η επιλογή έχει βασική εμφάνιση
|
||||
|
||||
|
Can't render this file because it is too large.
|
@@ -4394,6 +4394,7 @@ axis Both Ambos
|
||||
@msg Plug-ins can't be loaded from {path}: {e} No se pueden cargar plugins desde {path}: {e}
|
||||
@msg direct-select anchor points to cut at (not the end points of open paths) selecciona con Selección directa los puntos de ancla en los que cortar (no los puntos finales de trazados abiertos)
|
||||
@msg Divide Objects Below: select a path Dividir objetos inferiores: selecciona un trazado
|
||||
@msg select a path selecciona un trazado
|
||||
@msg Divide Objects Below: select exactly one path Dividir objetos inferiores: selecciona exactamente un trazado
|
||||
@msg Downloaded {what} Se descargó {what}
|
||||
@msg Expand Appearance: the selection has a basic appearance Expandir apariencia: la selección tiene una apariencia básica
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -4618,6 +4618,7 @@ imageTrace Outline Ääriviiva
|
||||
@msg Plug-ins can't be loaded from {path}: {e} Laajennuksia ei voi ladata kansiosta {path}: {e}
|
||||
@msg direct-select anchor points to cut at (not the end points of open paths) valitse suoravalinnalla ankkuripisteet, joista leikataan (ei avoimien polkujen päätepisteitä)
|
||||
@msg Divide Objects Below: select a path Jaa alla olevat objektit: valitse polku
|
||||
@msg select a path valitse polku
|
||||
@msg Divide Objects Below: select exactly one path Jaa alla olevat objektit: valitse tasan yksi polku
|
||||
@msg Downloaded {what} Ladattiin {what}
|
||||
@msg Expand Appearance: the selection has a basic appearance Laajenna ulkoasu: valinnalla on perusulkoasu
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -4383,6 +4383,7 @@ axis Both Les deux
|
||||
@msg Plug-ins can't be loaded from {path}: {e} Impossible de charger les plug-ins depuis {path} ({e})
|
||||
@msg direct-select anchor points to cut at (not the end points of open paths) sélectionnez avec l’outil Sélection directe les points d’ancrage où couper (pas les extrémités des tracés ouverts)
|
||||
@msg Divide Objects Below: select a path Diviser les objets inférieurs : sélectionnez un tracé
|
||||
@msg select a path sélectionnez un tracé
|
||||
@msg Divide Objects Below: select exactly one path Diviser les objets inférieurs : sélectionnez exactement un tracé
|
||||
@msg Downloaded {what} {what} téléchargé
|
||||
@msg Expand Appearance: the selection has a basic appearance Décomposer l’aspect : la sélection a un aspect de base
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5212,6 +5212,7 @@ imageTrace Outline Körvonal
|
||||
@msgplural Discarded {n} recovered document|Discarded {n} recovered documents Elvetett helyreállított dokumentumok: {n}
|
||||
@msg divide into 1 to {MAX_PIECES} slices a felosztás 1 és {MAX_PIECES} közötti szeletre lehetséges
|
||||
@msg Divide Objects Below: select a path Alatta lévő objektumok felosztása: jelölj ki egy útvonalat
|
||||
@msg select a path jelölj ki egy útvonalat
|
||||
@msg Divide Objects Below: select exactly one path Alatta lévő objektumok felosztása: pontosan egy útvonalat jelölj ki
|
||||
@msg docking action contains an unknown panel or an excessive split path a dokkolási művelet ismeretlen panelt vagy túl hosszú felosztási útvonalat tartalmaz
|
||||
@msg Downloaded {what} Letöltve: {what}
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -4446,6 +4446,7 @@ axis Both Entrambi
|
||||
@msg Plug-ins can't be loaded from {path}: {e} Impossibile caricare plug-in da {path}: {e}
|
||||
@msg direct-select anchor points to cut at (not the end points of open paths) seleziona con Selezione diretta i punti di ancoraggio in cui tagliare (non i punti finali dei tracciati aperti)
|
||||
@msg Divide Objects Below: select a path Dividi oggetti sottostanti: seleziona un tracciato
|
||||
@msg select a path seleziona un tracciato
|
||||
@msg Divide Objects Below: select exactly one path Dividi oggetti sottostanti: seleziona esattamente un tracciato
|
||||
@msg Downloaded {what} Scaricato {what}
|
||||
@msg Expand Appearance: the selection has a basic appearance Espandi aspetto: la selezione ha un aspetto di base
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -4595,6 +4595,7 @@ swatch Bright Violet ビビッドバイオレット
|
||||
@msg direct-select anchor points to cut at (not the end points of open paths) ダイレクト選択ツールで、カットする位置のアンカーポイントを選択してください (オープンパスの端点を除く)
|
||||
@msg select paths or anchor points パスまたはアンカーポイントを選択してください
|
||||
@msg Divide Objects Below: select a path 背面のオブジェクトで型抜き: パスを選択してください
|
||||
@msg select a path パスを選択してください
|
||||
@msg Divide Objects Below: select exactly one path 背面のオブジェクトで型抜き: パスを 1 つだけ選択してください
|
||||
@msg Offset Path: select paths パスのオフセット: パスを選択してください
|
||||
@msg Offset Path: the offset leaves nothing of the selected paths (an inset larger than the shapes) パスのオフセット: オフセットすると選択したパスが何も残りません (内側へのオフセットがシェイプより大きい)
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -4098,6 +4098,7 @@ font-technology Variable ცვლადი
|
||||
@msg Plug-ins can't be loaded from {path}: {e} პლაგინების ჩატვირთვა ვერ ხერხდება აქედან: {path}: {e}
|
||||
@msg direct-select anchor points to cut at (not the end points of open paths) პირდაპირი მონიშვნით მონიშნეთ საყრდენი წერტილები, სადაც გაიჭრება (არა ღია ტრაექტორიების ბოლო წერტილები)
|
||||
@msg Divide Objects Below: select a path ქვედა ობიექტების დაყოფა: მონიშნეთ ტრაექტორია
|
||||
@msg select a path მონიშნეთ ტრაექტორია
|
||||
@msg Divide Objects Below: select exactly one path ქვედა ობიექტების დაყოფა: მონიშნეთ ზუსტად ერთი ტრაექტორია
|
||||
@msg Downloaded {what} ჩამოტვირთულია: {what}
|
||||
@msg Expand Appearance: the selection has a basic appearance იერსახის გაშლა: მონიშნულს საბაზისო იერსახე აქვს
|
||||
|
||||
|
Can't render this file because it is too large.
|
@@ -4522,6 +4522,7 @@ theme Appearance 외관
|
||||
@msg direct-select anchor points to cut at (not the end points of open paths) 자를 앵커 포인트를 직접 선택하세요(열린 패스의 끝점 제외)
|
||||
@msg select paths or anchor points 패스 또는 앵커 포인트를 선택하세요
|
||||
@msg Divide Objects Below: select a path 아래 개체 분할: 패스를 선택하세요
|
||||
@msg select a path 패스를 선택하세요
|
||||
@msg Divide Objects Below: select exactly one path 아래 개체 분할: 패스를 하나만 선택하세요
|
||||
@msg Offset Path: select paths 패스 오프셋: 패스를 선택하세요
|
||||
@msg Offset Path: the offset leaves nothing of the selected paths (an inset larger than the shapes) 패스 오프셋: 오프셋을 적용하면 선택한 패스가 남지 않습니다(안쪽 오프셋이 모양보다 큼)
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -4814,6 +4814,7 @@ imageTrace Outline Contour
|
||||
@msg Data Recovery has nowhere to keep copies: set Preferences → File Handling → Data Recovery → Folder (recoveryFolder) Gegevensherstel heeft nergens ruimte om kopieën te bewaren: stel Voorkeuren → Bestandsafhandeling → Gegevensherstel → Map (recoveryFolder) in
|
||||
@msg direct-select anchor points to cut at (not the end points of open paths) selecteer met directe selectie ankerpunten om te knippen (niet de eindpunten van open paden)
|
||||
@msg Divide Objects Below: select a path Objecten eronder verdelen: selecteer een pad
|
||||
@msg select a path selecteer een pad
|
||||
@msg Divide Objects Below: select exactly one path Objecten eronder verdelen: selecteer precies één pad
|
||||
@msg Downloaded {what} {what} gedownload
|
||||
@msg Expand Appearance: the selection has a basic appearance Vormgeving uitbreiden: de selectie heeft een basisvormgeving
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -4528,6 +4528,7 @@ imageTrace Outline Kontur
|
||||
@msg Plug-ins can't be loaded from {path}: {e} Nie można wczytać wtyczek z {path}: {e}
|
||||
@msg direct-select anchor points to cut at (not the end points of open paths) zaznacz bezpośrednio punkty kontrolne, w których ma nastąpić cięcie (nie punkty końcowe otwartych ścieżek)
|
||||
@msg Divide Objects Below: select a path Podziel obiekty poniżej: zaznacz ścieżkę
|
||||
@msg select a path zaznacz ścieżkę
|
||||
@msg Divide Objects Below: select exactly one path Podziel obiekty poniżej: zaznacz dokładnie jedną ścieżkę
|
||||
@msg Downloaded {what} Pobrano {what}
|
||||
@msg Expand Appearance: the selection has a basic appearance Rozszerz wygląd: zaznaczenie ma wygląd podstawowy
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -3858,6 +3858,7 @@ axis Both Ambos
|
||||
@msg Plug-ins can't be loaded from {path}: {e} Não é possível carregar plug-ins de {path}: {e}
|
||||
@msg direct-select anchor points to cut at (not the end points of open paths) selecione diretamente os pontos de ancoragem onde cortar (não as extremidades de traçados abertos)
|
||||
@msg Divide Objects Below: select a path Dividir objetos abaixo: selecione um traçado
|
||||
@msg select a path selecione um traçado
|
||||
@msg Divide Objects Below: select exactly one path Dividir objetos abaixo: selecione exatamente um traçado
|
||||
@msg Downloaded {what} {what} baixado
|
||||
@msg Expand Appearance: the selection has a basic appearance Expandir aparência: a seleção tem uma aparência básica
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 6 and column 47.
|
@@ -4431,6 +4431,7 @@ axis Both Оба
|
||||
@msg Plug-ins can't be loaded from {path}: {e} Не удается загрузить модули из {path}: {e}
|
||||
@msg direct-select anchor points to cut at (not the end points of open paths) выделите прямым выделением опорные точки для разреза (не конечные точки открытых контуров)
|
||||
@msg Divide Objects Below: select a path Разделение объектов ниже: выделите контур
|
||||
@msg select a path выделите контур
|
||||
@msg Divide Objects Below: select exactly one path Разделение объектов ниже: выделите ровно один контур
|
||||
@msg Downloaded {what} Скачано: {what}
|
||||
@msg Expand Appearance: the selection has a basic appearance Разбор оформления: у выделения основное оформление
|
||||
|
||||
|
Can't render this file because it is too large.
|
@@ -2774,6 +2774,37 @@ fn plugin_limit_errors_are_translated() {
|
||||
}
|
||||
}
|
||||
|
||||
/// The reason Object › Path's commands are unavailable while the selection holds no path has its
|
||||
/// own row in every language that translates every message, and shows translated both alone and
|
||||
/// inside the error a disabled command returns.
|
||||
#[test]
|
||||
fn selected_path_reason_is_translated() {
|
||||
use serde_json::json;
|
||||
use vectorcraft_engine::EngineError;
|
||||
let reason = "select a path";
|
||||
assert!(message_literals().contains(reason));
|
||||
let mut s = vectorcraft_engine::Session::new();
|
||||
s.execute("file.new", &json!({"width": 100, "height": 100})).unwrap();
|
||||
s.execute("text.create", &json!({"x": 10, "y": 10, "text": "Type"})).unwrap();
|
||||
s.execute("select.all", &json!({})).unwrap();
|
||||
let error = match s.execute("path.reverse", &json!({})) {
|
||||
Err(e @ EngineError::Disabled(..)) => e.to_string(),
|
||||
other => panic!("a selection of type alone: {other:?}"),
|
||||
};
|
||||
assert_eq!(error, "command `path.reverse` is not available right now: select a path");
|
||||
assert_eq!(message(Lang::EN, &error), error);
|
||||
for code in COMPLETE_MESSAGES {
|
||||
let lang = Lang::from_code(code).expect("registered");
|
||||
let (entries, _) = parse_entries(lang.0.source);
|
||||
let row = entries.iter().find(|(ctx, src, _)| ctx == "@msg" && src == reason).map(|(_, _, tr)| tr.as_str());
|
||||
let Some(row) = row else { panic!("{code}: no `@msg` row for {reason:?}") };
|
||||
assert_ne!(row, reason, "{code}");
|
||||
assert_eq!(message(lang, reason), row, "{code}");
|
||||
let shown = message(lang, &error);
|
||||
assert!(shown.contains(row) && !shown.contains(reason) && shown.contains("`path.reverse`"), "{code}: {shown}");
|
||||
}
|
||||
}
|
||||
|
||||
/// The errors a script's `File` and `Folder` objects, `vc.run` and `$.evalFile` raise are
|
||||
/// translated in every language of [`COMPLETE_MESSAGES`], and so is the status bar's line for a run
|
||||
/// that ends with one: the script's name, its place, the command ids and what the script itself
|
||||
|
||||
@@ -4159,6 +4159,7 @@ axis Both Her İkisi
|
||||
@msg Plug-ins can't be loaded from {path}: {e} Eklentiler {path} konumundan yüklenemiyor: {e}
|
||||
@msg direct-select anchor points to cut at (not the end points of open paths) kesilecek bağlantı noktalarını doğrudan seçin (açık yolların bitiş noktalarını değil)
|
||||
@msg Divide Objects Below: select a path Aşağıdaki Nesneleri Böl: bir yol seçin
|
||||
@msg select a path bir yol seçin
|
||||
@msg Divide Objects Below: select exactly one path Aşağıdaki Nesneleri Böl: tam olarak bir yol seçin
|
||||
@msg Downloaded {what} {what} indirildi
|
||||
@msg Expand Appearance: the selection has a basic appearance Görünümü Genişlet: seçimin temel bir görünümü vardır
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 5 and column 25.
|
@@ -4430,6 +4430,7 @@ axis Both Обидві
|
||||
@msg Plug-ins can't be loaded from {path}: {e} Не вдається завантажити модулі з {path}: {e}
|
||||
@msg direct-select anchor points to cut at (not the end points of open paths) виділіть прямим виділенням опорні точки для розрізу (не кінцеві точки відкритих контурів)
|
||||
@msg Divide Objects Below: select a path Поділ об’єктів нижче: виділіть контур
|
||||
@msg select a path виділіть контур
|
||||
@msg Divide Objects Below: select exactly one path Поділ об’єктів нижче: виділіть рівно один контур
|
||||
@msg Downloaded {what} Завантажено: {what}
|
||||
@msg Expand Appearance: the selection has a basic appearance Розбір оформлення: виділення основне оформлення
|
||||
|
||||
|
Can't render this file because it is too large.
|
@@ -4866,6 +4866,7 @@ theme Appearance Giao diện
|
||||
@msgplural Discarded {n} recovered document|Discarded {n} recovered documents Đã loại bỏ {n} tài liệu đã phục hồi
|
||||
@msg divide into 1 to {MAX_PIECES} slices chia thành 1 đến {MAX_PIECES} lát cắt
|
||||
@msg Divide Objects Below: select a path Chia đối tượng bên dưới: hãy chọn một đường dẫn
|
||||
@msg select a path hãy chọn một đường dẫn
|
||||
@msg Divide Objects Below: select exactly one path Chia đối tượng bên dưới: chọn đúng một đường dẫn
|
||||
@msg docking action contains an unknown panel or an excessive split path hành động neo chứa bảng không xác định hoặc đường dẫn tách quá dài
|
||||
@msg Downloaded {what} Đã tải xuống {what}
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 204 and column 5.
|
@@ -4295,6 +4295,7 @@ imageTrace Outline 轮廓
|
||||
@msg direct-select anchor points to cut at (not the end points of open paths) 请直接选择要在其处切割的锚点 (不能是开放路径的端点)
|
||||
@msg select paths or anchor points 请选择路径或锚点
|
||||
@msg Divide Objects Below: select a path 分割下方对象:请选择一条路径
|
||||
@msg select a path 请选择一条路径
|
||||
@msg Divide Objects Below: select exactly one path 分割下方对象:请只选择一条路径
|
||||
@msg Offset Path: select paths 偏移路径:请选择路径
|
||||
@msg Offset Path: the offset leaves nothing of the selected paths (an inset larger than the shapes) 偏移路径:偏移后所选路径不剩任何部分 (内缩量大于形状)
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -2006,6 +2006,7 @@ file-filter Templates 範本
|
||||
@msg direct-select anchor points to cut at (not the end points of open paths) 請直接選取要剪開的錨點 (不能是開放路徑的端點)
|
||||
@msg select paths or anchor points 請選取路徑或錨點
|
||||
@msg Divide Objects Below: select a path 分割下方物件:請選取路徑
|
||||
@msg select a path 請選取路徑
|
||||
@msg Divide Objects Below: select exactly one path 分割下方物件:請只選取一條路徑
|
||||
@msg Offset Path: select paths 位移複製:請選取路徑
|
||||
@msg Offset Path: the offset leaves nothing of the selected paths (an inset larger than the shapes) 位移複製:位移後所選路徑不留任何部分 (內縮量大於形狀)
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 6 and column 47.
|
Reference in New Issue
Block a user