summaryrefslogtreecommitdiff
path: root/crates
diff options
context:
space:
mode:
Diffstat (limited to 'crates')
-rw-r--r--crates/typst-library/src/text/lang.rs68
-rw-r--r--crates/typst-library/translations/ar.txt2
-rw-r--r--crates/typst-library/translations/bg.txt2
-rw-r--r--crates/typst-library/translations/ca.txt2
-rw-r--r--crates/typst-library/translations/cs.txt2
-rw-r--r--crates/typst-library/translations/da.txt2
-rw-r--r--crates/typst-library/translations/de.txt2
-rw-r--r--crates/typst-library/translations/el.txt2
-rw-r--r--crates/typst-library/translations/en.txt2
-rw-r--r--crates/typst-library/translations/es.txt2
-rw-r--r--crates/typst-library/translations/et.txt2
-rw-r--r--crates/typst-library/translations/fi.txt2
-rw-r--r--crates/typst-library/translations/fr.txt2
-rw-r--r--crates/typst-library/translations/gl.txt2
-rw-r--r--crates/typst-library/translations/he.txt2
-rw-r--r--crates/typst-library/translations/hu.txt4
-rw-r--r--crates/typst-library/translations/is.txt2
-rw-r--r--crates/typst-library/translations/it.txt2
-rw-r--r--crates/typst-library/translations/ja.txt2
-rw-r--r--crates/typst-library/translations/la.txt2
-rw-r--r--crates/typst-library/translations/nb.txt2
-rw-r--r--crates/typst-library/translations/nl.txt2
-rw-r--r--crates/typst-library/translations/nn.txt2
-rw-r--r--crates/typst-library/translations/pl.txt2
-rw-r--r--crates/typst-library/translations/pt-PT.txt12
-rw-r--r--crates/typst-library/translations/pt.txt2
-rw-r--r--crates/typst-library/translations/ro.txt2
-rw-r--r--crates/typst-library/translations/ru.txt2
-rw-r--r--crates/typst-library/translations/sl.txt2
-rw-r--r--crates/typst-library/translations/sq.txt2
-rw-r--r--crates/typst-library/translations/sr.txt2
-rw-r--r--crates/typst-library/translations/sv.txt2
-rw-r--r--crates/typst-library/translations/tl.txt2
-rw-r--r--crates/typst-library/translations/tr.txt2
-rw-r--r--crates/typst-library/translations/uk.txt2
-rw-r--r--crates/typst-library/translations/vi.txt2
-rw-r--r--crates/typst-library/translations/zh-TW.txt4
-rw-r--r--crates/typst-library/translations/zh.txt2
38 files changed, 108 insertions, 48 deletions
diff --git a/crates/typst-library/src/text/lang.rs b/crates/typst-library/src/text/lang.rs
index f9f13c78..e06156c4 100644
--- a/crates/typst-library/src/text/lang.rs
+++ b/crates/typst-library/src/text/lang.rs
@@ -14,13 +14,14 @@ macro_rules! translation {
};
}
-const TRANSLATIONS: [(&str, &str); 40] = [
+const TRANSLATIONS: &[(&str, &str)] = &[
translation!("ar"),
translation!("bg"),
translation!("ca"),
translation!("cs"),
translation!("da"),
translation!("de"),
+ translation!("el"),
translation!("en"),
translation!("es"),
translation!("et"),
@@ -28,7 +29,6 @@ const TRANSLATIONS: [(&str, &str); 40] = [
translation!("fi"),
translation!("fr"),
translation!("gl"),
- translation!("el"),
translation!("he"),
translation!("hu"),
translation!("id"),
@@ -41,8 +41,8 @@ const TRANSLATIONS: [(&str, &str); 40] = [
translation!("nl"),
translation!("nn"),
translation!("pl"),
- translation!("pt-PT"),
translation!("pt"),
+ translation!("pt-PT"),
translation!("ro"),
translation!("ru"),
translation!("sl"),
@@ -53,8 +53,8 @@ const TRANSLATIONS: [(&str, &str); 40] = [
translation!("tr"),
translation!("uk"),
translation!("vi"),
- translation!("zh-TW"),
translation!("zh"),
+ translation!("zh-TW"),
];
/// An identifier for a natural language.
@@ -312,14 +312,74 @@ fn lang_str(lang: Lang, region: Option<Region>) -> EcoString {
#[cfg(test)]
mod tests {
+ use std::collections::HashSet;
+ use std::path::PathBuf;
+
use typst_utils::option_eq;
use super::*;
+ fn translation_files_iter() -> impl Iterator<Item = PathBuf> {
+ std::fs::read_dir("translations")
+ .unwrap()
+ .map(|e| e.unwrap().path())
+ .filter(|e| e.is_file() && e.extension().is_some_and(|e| e == "txt"))
+ }
+
#[test]
fn test_region_option_eq() {
let region = Some(Region([b'U', b'S']));
assert!(option_eq(region, "US"));
assert!(!option_eq(region, "AB"));
}
+
+ #[test]
+ fn test_all_translations_included() {
+ let defined_keys =
+ HashSet::<&str>::from_iter(TRANSLATIONS.iter().map(|(lang, _)| *lang));
+ let mut checked = 0;
+ for file in translation_files_iter() {
+ assert!(
+ defined_keys.contains(
+ file.file_stem()
+ .expect("translation file should have basename")
+ .to_str()
+ .expect("translation file name should be utf-8 encoded")
+ ),
+ "translation from {:?} should be registered in TRANSLATIONS in {}",
+ file.file_name().unwrap(),
+ file!(),
+ );
+ checked += 1;
+ }
+ assert_eq!(TRANSLATIONS.len(), checked);
+ }
+
+ #[test]
+ fn test_all_translation_files_formatted() {
+ for file in translation_files_iter() {
+ let content = std::fs::read_to_string(&file)
+ .expect("translation file should be in utf-8 encoding");
+ let filename = file.file_name().unwrap();
+ assert!(
+ content.ends_with('\n'),
+ "translation file {filename:?} should end with linebreak",
+ );
+ for line in content.lines() {
+ assert_eq!(
+ line.trim(),
+ line,
+ "line {line:?} in {filename:?} should not have extra whitespaces"
+ );
+ }
+ }
+ }
+
+ #[test]
+ fn test_translations_sorted() {
+ assert!(
+ TRANSLATIONS.is_sorted_by_key(|(lang, _)| lang),
+ "TRANSLATIONS should be sorted"
+ );
+ }
}
diff --git a/crates/typst-library/translations/ar.txt b/crates/typst-library/translations/ar.txt
index 6b94dc44..7af2aaa9 100644
--- a/crates/typst-library/translations/ar.txt
+++ b/crates/typst-library/translations/ar.txt
@@ -5,4 +5,4 @@ bibliography = المراجع
heading = الفصل
outline = المحتويات
raw = قائمة
-page = صفحة \ No newline at end of file
+page = صفحة
diff --git a/crates/typst-library/translations/bg.txt b/crates/typst-library/translations/bg.txt
index 101a2522..e377af39 100644
--- a/crates/typst-library/translations/bg.txt
+++ b/crates/typst-library/translations/bg.txt
@@ -5,4 +5,4 @@ bibliography = Библиография
heading = Раздел
outline = Съдържание
raw = Приложение
-page = стр. \ No newline at end of file
+page = стр.
diff --git a/crates/typst-library/translations/ca.txt b/crates/typst-library/translations/ca.txt
index d81645ec..f0247329 100644
--- a/crates/typst-library/translations/ca.txt
+++ b/crates/typst-library/translations/ca.txt
@@ -5,4 +5,4 @@ bibliography = Bibliografia
heading = Secció
outline = Índex
raw = Llistat
-page = pàgina \ No newline at end of file
+page = pàgina
diff --git a/crates/typst-library/translations/cs.txt b/crates/typst-library/translations/cs.txt
index e21ca352..417f1ab2 100644
--- a/crates/typst-library/translations/cs.txt
+++ b/crates/typst-library/translations/cs.txt
@@ -5,4 +5,4 @@ bibliography = Bibliografie
heading = Kapitola
outline = Obsah
raw = Výpis
-page = strana \ No newline at end of file
+page = strana
diff --git a/crates/typst-library/translations/da.txt b/crates/typst-library/translations/da.txt
index 78d7e601..4ceeda06 100644
--- a/crates/typst-library/translations/da.txt
+++ b/crates/typst-library/translations/da.txt
@@ -5,4 +5,4 @@ bibliography = Bibliografi
heading = Afsnit
outline = Indhold
raw = Liste
-page = side \ No newline at end of file
+page = side
diff --git a/crates/typst-library/translations/de.txt b/crates/typst-library/translations/de.txt
index dad785bc..a9da1adb 100644
--- a/crates/typst-library/translations/de.txt
+++ b/crates/typst-library/translations/de.txt
@@ -5,4 +5,4 @@ bibliography = Bibliographie
heading = Abschnitt
outline = Inhaltsverzeichnis
raw = Listing
-page = Seite \ No newline at end of file
+page = Seite
diff --git a/crates/typst-library/translations/el.txt b/crates/typst-library/translations/el.txt
index 34aa3c44..3853a45b 100644
--- a/crates/typst-library/translations/el.txt
+++ b/crates/typst-library/translations/el.txt
@@ -4,4 +4,4 @@ equation = Εξίσωση
bibliography = Βιβλιογραφία
heading = Κεφάλαιο
outline = Περιεχόμενα
-raw = Παράθεση \ No newline at end of file
+raw = Παράθεση
diff --git a/crates/typst-library/translations/en.txt b/crates/typst-library/translations/en.txt
index a4f82c89..fa2d65b9 100644
--- a/crates/typst-library/translations/en.txt
+++ b/crates/typst-library/translations/en.txt
@@ -5,4 +5,4 @@ bibliography = Bibliography
heading = Section
outline = Contents
raw = Listing
-page = page \ No newline at end of file
+page = page
diff --git a/crates/typst-library/translations/es.txt b/crates/typst-library/translations/es.txt
index 6580fb0a..8fe9929d 100644
--- a/crates/typst-library/translations/es.txt
+++ b/crates/typst-library/translations/es.txt
@@ -5,4 +5,4 @@ bibliography = Bibliografía
heading = Sección
outline = Índice
raw = Listado
-page = página \ No newline at end of file
+page = página
diff --git a/crates/typst-library/translations/et.txt b/crates/typst-library/translations/et.txt
index 02134eff..58892905 100644
--- a/crates/typst-library/translations/et.txt
+++ b/crates/typst-library/translations/et.txt
@@ -5,4 +5,4 @@ bibliography = Viited
heading = Peatükk
outline = Sisukord
raw = List
-page = lk. \ No newline at end of file
+page = lk.
diff --git a/crates/typst-library/translations/fi.txt b/crates/typst-library/translations/fi.txt
index 91c94365..edb88de8 100644
--- a/crates/typst-library/translations/fi.txt
+++ b/crates/typst-library/translations/fi.txt
@@ -5,4 +5,4 @@ bibliography = Viitteet
heading = Osio
outline = Sisällys
raw = Esimerkki
-page = sivu \ No newline at end of file
+page = sivu
diff --git a/crates/typst-library/translations/fr.txt b/crates/typst-library/translations/fr.txt
index a5b39915..f8e27c9c 100644
--- a/crates/typst-library/translations/fr.txt
+++ b/crates/typst-library/translations/fr.txt
@@ -5,4 +5,4 @@ bibliography = Bibliographie
heading = Chapitre
outline = Table des matières
raw = Liste
-page = page \ No newline at end of file
+page = page
diff --git a/crates/typst-library/translations/gl.txt b/crates/typst-library/translations/gl.txt
index d1126922..49bf01b7 100644
--- a/crates/typst-library/translations/gl.txt
+++ b/crates/typst-library/translations/gl.txt
@@ -5,4 +5,4 @@ bibliography = Bibliografía
heading = Sección
outline = Índice
raw = Listado
-page = páxina \ No newline at end of file
+page = páxina
diff --git a/crates/typst-library/translations/he.txt b/crates/typst-library/translations/he.txt
index c3ca7712..5317c927 100644
--- a/crates/typst-library/translations/he.txt
+++ b/crates/typst-library/translations/he.txt
@@ -5,4 +5,4 @@ bibliography = רשימת מקורות
heading = חלק
outline = תוכן עניינים
raw = קטע מקור
-page = עמוד \ No newline at end of file
+page = עמוד
diff --git a/crates/typst-library/translations/hu.txt b/crates/typst-library/translations/hu.txt
index d800688e..a88da3e5 100644
--- a/crates/typst-library/translations/hu.txt
+++ b/crates/typst-library/translations/hu.txt
@@ -4,5 +4,5 @@ equation = Egyenlet
bibliography = Irodalomjegyzék
heading = Fejezet
outline = Tartalomjegyzék
-# raw =
-page = oldal \ No newline at end of file
+# raw =
+page = oldal
diff --git a/crates/typst-library/translations/is.txt b/crates/typst-library/translations/is.txt
index 151303eb..756c9770 100644
--- a/crates/typst-library/translations/is.txt
+++ b/crates/typst-library/translations/is.txt
@@ -5,4 +5,4 @@ bibliography = Heimildaskrá
heading = Kafli
outline = Efnisyfirlit
raw = Sýnishorn
-page = blaðsíða \ No newline at end of file
+page = blaðsíða
diff --git a/crates/typst-library/translations/it.txt b/crates/typst-library/translations/it.txt
index f1ee1d33..9f3c352d 100644
--- a/crates/typst-library/translations/it.txt
+++ b/crates/typst-library/translations/it.txt
@@ -5,4 +5,4 @@ bibliography = Bibliografia
heading = Sezione
outline = Indice
raw = Codice
-page = pag. \ No newline at end of file
+page = pag.
diff --git a/crates/typst-library/translations/ja.txt b/crates/typst-library/translations/ja.txt
index ea340405..484b20a6 100644
--- a/crates/typst-library/translations/ja.txt
+++ b/crates/typst-library/translations/ja.txt
@@ -5,4 +5,4 @@ bibliography = 参考文献
heading = 節
outline = 目次
raw = リスト
-page = ページ \ No newline at end of file
+page = ページ
diff --git a/crates/typst-library/translations/la.txt b/crates/typst-library/translations/la.txt
index eb48d0e9..d25517c2 100644
--- a/crates/typst-library/translations/la.txt
+++ b/crates/typst-library/translations/la.txt
@@ -5,4 +5,4 @@ bibliography = Conspectus librorum
heading = Caput
outline = Index capitum
raw = Exemplum
-page = charta \ No newline at end of file
+page = charta
diff --git a/crates/typst-library/translations/nb.txt b/crates/typst-library/translations/nb.txt
index b6ad00c9..edf66b53 100644
--- a/crates/typst-library/translations/nb.txt
+++ b/crates/typst-library/translations/nb.txt
@@ -5,4 +5,4 @@ bibliography = Bibliografi
heading = Kapittel
outline = Innhold
raw = Utskrift
-page = side \ No newline at end of file
+page = side
diff --git a/crates/typst-library/translations/nl.txt b/crates/typst-library/translations/nl.txt
index 788981fa..24b8315f 100644
--- a/crates/typst-library/translations/nl.txt
+++ b/crates/typst-library/translations/nl.txt
@@ -5,4 +5,4 @@ bibliography = Bibliografie
heading = Hoofdstuk
outline = Inhoudsopgave
raw = Listing
-page = pagina \ No newline at end of file
+page = pagina
diff --git a/crates/typst-library/translations/nn.txt b/crates/typst-library/translations/nn.txt
index 565d9a80..2c2a27a7 100644
--- a/crates/typst-library/translations/nn.txt
+++ b/crates/typst-library/translations/nn.txt
@@ -5,4 +5,4 @@ bibliography = Bibliografi
heading = Kapittel
outline = Innhald
raw = Utskrift
-page = side \ No newline at end of file
+page = side
diff --git a/crates/typst-library/translations/pl.txt b/crates/typst-library/translations/pl.txt
index c1b630bb..cc8f4b36 100644
--- a/crates/typst-library/translations/pl.txt
+++ b/crates/typst-library/translations/pl.txt
@@ -5,4 +5,4 @@ bibliography = Bibliografia
heading = Sekcja
outline = Spis treści
raw = Program
-page = strona \ No newline at end of file
+page = strona
diff --git a/crates/typst-library/translations/pt-PT.txt b/crates/typst-library/translations/pt-PT.txt
index 37a64aff..1d68ab85 100644
--- a/crates/typst-library/translations/pt-PT.txt
+++ b/crates/typst-library/translations/pt-PT.txt
@@ -1,8 +1,8 @@
-# figure =
-# table =
-# equation =
-# bibliography =
+# figure =
+# table =
+# equation =
+# bibliography =
heading = Secção
outline = Índice
-# raw =
-page = página \ No newline at end of file
+# raw =
+page = página
diff --git a/crates/typst-library/translations/pt.txt b/crates/typst-library/translations/pt.txt
index 646d907a..398a75f3 100644
--- a/crates/typst-library/translations/pt.txt
+++ b/crates/typst-library/translations/pt.txt
@@ -5,4 +5,4 @@ bibliography = Bibliografia
heading = Seção
outline = Sumário
raw = Listagem
-page = página \ No newline at end of file
+page = página
diff --git a/crates/typst-library/translations/ro.txt b/crates/typst-library/translations/ro.txt
index db7466c6..f5d44f72 100644
--- a/crates/typst-library/translations/ro.txt
+++ b/crates/typst-library/translations/ro.txt
@@ -6,4 +6,4 @@ heading = Secțiunea
outline = Cuprins
# may be wrong
raw = Listă
-page = pagina \ No newline at end of file
+page = pagina
diff --git a/crates/typst-library/translations/ru.txt b/crates/typst-library/translations/ru.txt
index 0e774e7b..49cb34cb 100644
--- a/crates/typst-library/translations/ru.txt
+++ b/crates/typst-library/translations/ru.txt
@@ -5,4 +5,4 @@ bibliography = Библиография
heading = Раздел
outline = Содержание
raw = Листинг
-page = с. \ No newline at end of file
+page = с.
diff --git a/crates/typst-library/translations/sl.txt b/crates/typst-library/translations/sl.txt
index 1b0adf66..4c8a568c 100644
--- a/crates/typst-library/translations/sl.txt
+++ b/crates/typst-library/translations/sl.txt
@@ -5,4 +5,4 @@ bibliography = Literatura
heading = Poglavje
outline = Kazalo
raw = Program
-page = stran \ No newline at end of file
+page = stran
diff --git a/crates/typst-library/translations/sq.txt b/crates/typst-library/translations/sq.txt
index 396ce69a..11ba5321 100644
--- a/crates/typst-library/translations/sq.txt
+++ b/crates/typst-library/translations/sq.txt
@@ -5,4 +5,4 @@ bibliography = Bibliografi
heading = Kapitull
outline = Përmbajtja
raw = List
-page = faqe \ No newline at end of file
+page = faqe
diff --git a/crates/typst-library/translations/sr.txt b/crates/typst-library/translations/sr.txt
index bd13807b..e4e8f127 100644
--- a/crates/typst-library/translations/sr.txt
+++ b/crates/typst-library/translations/sr.txt
@@ -5,4 +5,4 @@ bibliography = Литература
heading = Поглавље
outline = Садржај
raw = Програм
-page = страна \ No newline at end of file
+page = страна
diff --git a/crates/typst-library/translations/sv.txt b/crates/typst-library/translations/sv.txt
index 079f5846..20cea6f9 100644
--- a/crates/typst-library/translations/sv.txt
+++ b/crates/typst-library/translations/sv.txt
@@ -5,4 +5,4 @@ bibliography = Bibliografi
heading = Kapitel
outline = Innehåll
raw = Listing
-page = sida \ No newline at end of file
+page = sida
diff --git a/crates/typst-library/translations/tl.txt b/crates/typst-library/translations/tl.txt
index 1fd15a02..39cff5e3 100644
--- a/crates/typst-library/translations/tl.txt
+++ b/crates/typst-library/translations/tl.txt
@@ -5,4 +5,4 @@ bibliography = Bibliograpiya
heading = Seksyon
outline = Talaan ng mga Nilalaman
raw = Listahan
-# page = \ No newline at end of file
+# page =
diff --git a/crates/typst-library/translations/tr.txt b/crates/typst-library/translations/tr.txt
index 2419a0d4..f6e2cfe2 100644
--- a/crates/typst-library/translations/tr.txt
+++ b/crates/typst-library/translations/tr.txt
@@ -5,4 +5,4 @@ bibliography = Kaynakça
heading = Bölüm
outline = İçindekiler
raw = Liste
-page = sayfa \ No newline at end of file
+page = sayfa
diff --git a/crates/typst-library/translations/uk.txt b/crates/typst-library/translations/uk.txt
index bced3a52..4794c331 100644
--- a/crates/typst-library/translations/uk.txt
+++ b/crates/typst-library/translations/uk.txt
@@ -5,4 +5,4 @@ bibliography = Бібліографія
heading = Розділ
outline = Зміст
raw = Лістинг
-page = c. \ No newline at end of file
+page = c.
diff --git a/crates/typst-library/translations/vi.txt b/crates/typst-library/translations/vi.txt
index 41748abe..8ccfdf02 100644
--- a/crates/typst-library/translations/vi.txt
+++ b/crates/typst-library/translations/vi.txt
@@ -6,4 +6,4 @@ heading = Phần
outline = Mục lục
# may be wrong
raw = Chương trình
-page = trang \ No newline at end of file
+page = trang
diff --git a/crates/typst-library/translations/zh-TW.txt b/crates/typst-library/translations/zh-TW.txt
index 457a7fba..4407f323 100644
--- a/crates/typst-library/translations/zh-TW.txt
+++ b/crates/typst-library/translations/zh-TW.txt
@@ -1,8 +1,8 @@
figure = 圖
-# table =
+# table =
equation = 式
bibliography = 書目
heading = 小節
outline = 目錄
raw = 程式
-# page = \ No newline at end of file
+# page =
diff --git a/crates/typst-library/translations/zh.txt b/crates/typst-library/translations/zh.txt
index 948edd53..32dc4010 100644
--- a/crates/typst-library/translations/zh.txt
+++ b/crates/typst-library/translations/zh.txt
@@ -5,4 +5,4 @@ bibliography = 参考文献
heading = 小节
outline = 目录
raw = 代码
-# page = \ No newline at end of file
+# page =