From 8fd8eaf731a05313fa53b1ce2bf87733e7585509 Mon Sep 17 00:00:00 2001
From: GlooriousWalrus
@@ -133,11 +133,11 @@ fn GuideTextBlock() -> impl IntoView {
- {"Тепер ми можемо записати назву наступним чином: はつ_か_いち. Тепер, коли ми вводимо це у Коваль, ми отримуємо правильний очікуваний результат Хацукаїчі"} + {"Тепер ми можемо записати назву наступним чином: はつ_か_いち. Тепер, коли ми вводимо це у Коваль, ми отримуємо правильний очікуваний результат Хацукаїчі."}
- {"Ви могли помітити, що ієрогліф 廿 читається як はつ (хацу українською). В японській мові кандзі може мати довільне читання, яке читач або автор бажає. Вони можуть буквально придумати власне значення, якщо захочуть. Один ієрогліф кандзі може означати багато різних речей і може бути вимовлений або прочитаний кількома абсолютно різними способами. Отже, використовуючи лише кандзі, неможливо визначити вимову. Коли ви зустрічаєте японця або бачите ім'я, яке написане у вигляді кандзі, ви можете статистично вгадати його прочитання, але щоб бути абсолютно впевненим, ви повинні запитати людину, як воно читається."} + {"Ви могли помітити, що ієрогліф 廿 читається як はつ (хацу українською). В японській мові кандзі може мати довільне читання, яке автор бажає. Вони можуть буквально придумати власне значення, якщо захочуть. Один ієрогліф кандзі може означати багато різних речей і може бути вимовлений або прочитаний кількома абсолютно різними способами. Отже, використовуючи лише кандзі, неможливо визначити вимову. Коли ви зустрічаєте японця або бачите ім'я, яке написане у вигляді кандзі, ви можете інтуїтивно здогадатися, як правильно вимовляти, але щоб бути абсолютно впевненим, ви повинні запитати людину, як воно вимовляється."}
diff --git a/site/src/pages/transliterator.rs b/site/src/pages/transliterator.rs
index 28239ff..2593dc8 100644
--- a/site/src/pages/transliterator.rs
+++ b/site/src/pages/transliterator.rs
@@ -395,19 +395,14 @@ fn CaseSection() -> impl IntoView {
}
fn uppercase_words(data: &str) -> String {
- // Uppercase first letter in string, and letters after spaces.
- let mut result = String::new();
- let mut first = true;
- for value in data.chars() {
- if first {
- result.push(value.to_ascii_uppercase());
- first = false;
- } else {
- result.push(value);
- if value == ' ' {
- first = true;
+ data.split_whitespace() // Split the input string into an iterator of words.
+ .map(|word| { // Map each word to a new string with the first letter capitalized.
+ let mut chars = word.chars(); // Get an iterator of the characters in the word.
+ match chars.next() { // Match on the first character of the word.
+ Some(first_char) => first_char.to_uppercase().collect::