diff options
Diffstat (limited to 'shakehand-test')
| -rw-r--r-- | shakehand-test/Cargo.toml | 7 | ||||
| -rw-r--r-- | shakehand-test/locale/global.toml | 59 | ||||
| -rw-r--r-- | shakehand-test/src/lib.rs | 105 |
3 files changed, 171 insertions, 0 deletions
diff --git a/shakehand-test/Cargo.toml b/shakehand-test/Cargo.toml new file mode 100644 index 0000000..3f20603 --- /dev/null +++ b/shakehand-test/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "shakehand_test" +version = "0.1.0" +edition = "2024" + +[dependencies] +shakehand.workspace = true diff --git a/shakehand-test/locale/global.toml b/shakehand-test/locale/global.toml new file mode 100644 index 0000000..e85227c --- /dev/null +++ b/shakehand-test/locale/global.toml @@ -0,0 +1,59 @@ +[en] +world = "world" +greeting = "Hello, %{someone}!" +farewell = "Goodbye, %{someone}!" +thanks = "Thank you!" + +[zh_CN] +world = "世界" +greeting = "你好,%{someone}!" +farewell = "再见,%{someone}!" +thanks = "谢谢!" + +[ja] +world = "世界" +greeting = "こんにちは、%{someone}!" +farewell = "さようなら、%{someone}!" +thanks = "ありがとうございます!" + +[ko] +world = "세계" +greeting = "안녕하세요, %{someone}님!" +farewell = "안녕히 가세요, %{someone}님!" +thanks = "감사합니다!" + +[fr] +world = "monde" +greeting = "Bonjour, %{someone} !" +farewell = "Au revoir, %{someone} !" +thanks = "Merci !" + +[de] +world = "Welt" +greeting = "Hallo, %{someone}!" +farewell = "Auf Wiedersehen, %{someone}!" +thanks = "Danke!" + +[es] +world = "mundo" +greeting = "¡Hola, %{someone}!" +farewell = "¡Adiós, %{someone}!" +thanks = "¡Gracias!" + +[ru] +world = "мир" +greeting = "Привет, %{someone}!" +farewell = "До свидания, %{someone}!" +thanks = "Спасибо!" + +[ar] +world = "عالم" +greeting = "مرحبًا، %{someone}!" +farewell = "وداعًا، %{someone}!" +thanks = "شكرًا!" + +[pt] +world = "mundo" +greeting = "Olá, %{someone}!" +farewell = "Tchau, %{someone}!" +thanks = "Obrigado!" diff --git a/shakehand-test/src/lib.rs b/shakehand-test/src/lib.rs new file mode 100644 index 0000000..c290533 --- /dev/null +++ b/shakehand-test/src/lib.rs @@ -0,0 +1,105 @@ +#[cfg(test)] +mod test { + use crate::locale::{Global, Languages, set_lang}; + + #[test] + fn test_english() { + set_lang(Languages::en); + assert_eq!(Global::world(), "world"); + assert_eq!(Global::greeting("Alice"), "Hello, Alice!"); + assert_eq!(Global::farewell("Bob"), "Goodbye, Bob!"); + assert_eq!(Global::thanks(), "Thank you!"); + } + + #[test] + fn test_chinese() { + set_lang(Languages::zh_CN); + assert_eq!(Global::world(), "世界"); + assert_eq!(Global::greeting("小明"), "你好,小明!"); + assert_eq!(Global::farewell("小红"), "再见,小红!"); + assert_eq!(Global::thanks(), "谢谢!"); + } + + #[test] + fn test_japanese() { + set_lang(Languages::ja); + assert_eq!(Global::world(), "世界"); + assert_eq!(Global::greeting("田中"), "こんにちは、田中!"); + assert_eq!(Global::farewell("佐藤"), "さようなら、佐藤!"); + assert_eq!(Global::thanks(), "ありがとうございます!"); + } + + #[test] + fn test_korean() { + set_lang(Languages::ko); + assert_eq!(Global::world(), "세계"); + assert_eq!(Global::greeting("철수"), "안녕하세요, 철수님!"); + assert_eq!(Global::farewell("영희"), "안녕히 가세요, 영희님!"); + assert_eq!(Global::thanks(), "감사합니다!"); + } + + #[test] + fn test_french() { + set_lang(Languages::fr); + assert_eq!(Global::world(), "monde"); + assert_eq!(Global::greeting("Marie"), "Bonjour, Marie !"); + assert_eq!(Global::farewell("Pierre"), "Au revoir, Pierre !"); + assert_eq!(Global::thanks(), "Merci !"); + } + + #[test] + fn test_german() { + set_lang(Languages::de); + assert_eq!(Global::world(), "Welt"); + assert_eq!(Global::greeting("Hans"), "Hallo, Hans!"); + assert_eq!(Global::farewell("Greta"), "Auf Wiedersehen, Greta!"); + assert_eq!(Global::thanks(), "Danke!"); + } + + #[test] + fn test_spanish() { + set_lang(Languages::es); + assert_eq!(Global::world(), "mundo"); + assert_eq!(Global::greeting("Carlos"), "¡Hola, Carlos!"); + assert_eq!(Global::farewell("Lucía"), "¡Adiós, Lucía!"); + assert_eq!(Global::thanks(), "¡Gracias!"); + } + + #[test] + fn test_russian() { + set_lang(Languages::ru); + assert_eq!(Global::world(), "мир"); + assert_eq!(Global::greeting("Анна"), "Привет, Анна!"); + assert_eq!(Global::farewell("Иван"), "До свидания, Иван!"); + assert_eq!(Global::thanks(), "Спасибо!"); + } + + #[test] + fn test_arabic() { + set_lang(Languages::ar); + assert_eq!(Global::world(), "عالم"); + assert_eq!(Global::greeting("أحمد"), "مرحبًا، أحمد!"); + assert_eq!(Global::farewell("فاطمة"), "وداعًا، فاطمة!"); + assert_eq!(Global::thanks(), "شكرًا!"); + } + + #[test] + fn test_portuguese() { + set_lang(Languages::pt); + assert_eq!(Global::world(), "mundo"); + assert_eq!(Global::greeting("João"), "Olá, João!"); + assert_eq!(Global::farewell("Maria"), "Tchau, Maria!"); + assert_eq!(Global::thanks(), "Obrigado!"); + } + + #[test] + fn test_parameterless_translation_as_param() { + set_lang(Languages::en); + let greeting = Global::greeting(Global::world()); + assert_eq!(greeting, "Hello, world!"); + } +} + +mod locale { + shakehand::locale!("./locale"); +} |
