commit b285be97a14c7ce485b8646084cb9603e053c51f
parent 7321e828001a1f87565ea3e036007c01c85dd0a5
Author: Terry Yiu <git@tyiu.xyz>
Date: Wed, 23 Jul 2025 00:15:01 -0400
Add Thai translations
Signed-off-by: Terry Yiu <git@tyiu.xyz>
Diffstat:
2 files changed, 377 insertions(+), 1 deletion(-)
diff --git a/assets/translations/th/main.ftl b/assets/translations/th/main.ftl
@@ -0,0 +1,370 @@
+# Main translation file for Notedeck
+# This file contains common UI strings used throughout the application
+# Auto-generated by extract_i18n.py - DO NOT EDIT MANUALLY
+
+
+# Regular strings
+
+# Profile about/bio field label
+About_00c0 = เกี่ยวกับเรา
+# Column title for account management
+Accounts_f018 = บัญชีผู้ใช้
+# Button label to add a relay
+Add_269d = เพิ่ม
+# Label for add column button
+Add_47df = เพิ่ม
+# Button label to add a different wallet
+Add_a_different_wallet_that_will_only_be_used_for_this_account_de8d = เพิ่มวอลเล็ตอื่นเพื่อใช้สำหรับบัญชีนี้โดยเฉพาะ
+# Error message for missing wallet
+Add_a_wallet_to_continue_d170 = พิ่มวอลเล็ตเพื่อดำเนินการต่อ
+# Button label to add a new account
+Add_account_1cfc = เพิ่มบัญชี
+# Column title for adding new account
+Add_Account_d06c = เพิ่มบัญชี
+# Column title for adding algorithm column
+Add_Algo_Column_0d75 = เพิ่มคอลัมน์อัลกอฯ
+# Column title for adding new column
+Add_Column_c764 = เพิ่มคอลัมน์
+# Column title for adding new deck
+Add_Deck_fabf = เพิ่ม Deck
+# Column title for adding external notifications column
+Add_External_Notifications_Column_41ae = เพิ่มคอลัมน์การแจ้งเตือนภายนอก
+# Column title for adding hashtag column
+Add_Hashtag_Column_ebf4 = เพิ่มคอลัมน์แฮชแท็ก
+# Column title for adding last notes column
+Add_Last_Notes_Column_bbad = เพิ่มคอลัมน์โน้ตล่าสุด
+# Column title for adding notifications column
+Add_Notifications_Column_79f8 = เพิ่มคอลัมน์การแจ้งเตือน
+# Button label to add a relay
+Add_relay_269d = เพิ่มรีเลย์
+# Button label to add a wallet
+Add_Wallet_d1be = เพิ่มวอลเล็ต
+# Title for algorithmic feeds column
+Algo_2452 = อัลกอฯ
+# Description for algorithmic feeds column
+Algorithmic_feeds_to_aid_in_note_discovery_d344 = ฟีดแบบอัลกอริทึมที่ช่วยในการค้นหาโน้ต
+# Label for zap amount input field
+Amount_70f0 = จำนวน
+# Button to send message to Dave AI assistant
+Ask_b7f4 = ถาม
+# Placeholder text for Dave AI input field
+Ask_dave_anything_33d1 = ถามเดฟได้ทุกเรื่อง...
+# Profile banner URL field label
+Banner_52ef = ภาพปก
+# Beta version label
+BETA_8e5d = เบต้า
+# Broadcast the note to all connected relays
+Broadcast_fe43 = เผยแพร่
+# Broadcast the note only to local network relays
+Broadcast_Local_7e50 = เผยแพร่เฉพาะที่
+# Button label to cancel an action
+Cancel_ed3b = ยกเลิก
+# Hover text for editable zap amount
+Click_to_edit_0414 = คลิกเพื่อแก้ไข
+# Column title for note composition
+Compose_Note_c094 = เขียนโน้ต
+# Button label to confirm an action
+Confirm_f8a6 = ยืนยัน
+# Status label for connected relay
+Connected_f8cc = เชื่อมต่อแล้ว
+# Status label for connecting relay
+Connecting_6b7e = กำลังเชื่อมต่อ...
+# Title for contact list column
+Contact_List_f85a = รายชื่อผู้ติดต่อ
+# Column title for contact lists
+Contacts_7533 = ผู้ติดต่อ
+# Column title for last notes per contact
+Contacts__last_notes_3f84 = ผู้ติดต่อ (โน้ตล่าสุด)
+# Button label to copy logs
+Copy_a688 = คัดลอก
+# Button to copy media link to clipboard
+Copy_Link_dc7c = คัดลอกลิงก์
+# Copy the unique note identifier to clipboard
+Copy_Note_ID_6b45 = คัดลอก ID โน้ต
+# Copy the raw note data in JSON format to clipboard
+Copy_Note_JSON_9e4e = คัดลอก JSON ของโน้ต
+# Copy the author's public key to clipboard
+Copy_Pubkey_9cc4 = คัดลอก Pubkey
+# Copy the text content of the note to clipboard
+Copy_Text_f81c = คัดลอกข้อความ
+# Relative time in days
+count_d_b9be = { $count }d
+# Relative time in hours
+count_h_3ecb = { $count }h
+# Relative time in minutes
+count_m_b41e = { $count }m
+# Relative time in months
+count_mo_7aba = { $count }mo
+# Relative time in seconds
+count_s_aa26 = { $count }s
+# Relative time in weeks
+count_w_7468 = { $count }w
+# Relative time in years
+count_y_9408 = { $count }y
+# Button to create a new account
+Create_Account_6994 = สร้างบัญชี
+# Button label to create a new deck
+Create_Deck_16b7 = สร้าง Deck
+# Column title for custom timelines
+Custom_a69e = กำหนดเอง
+# Column title for zap amount customization
+Customize_Zap_Amount_cfc4 = กำหนดจำนวน Zap
+# Column title for support page
+Damus_Support_27c0 = ฝ่ายสนับสนุน Damus
+# Label for deck name input field
+Deck_name_cd32 = ชื่อ Deck
+# Label for decks section in side panel
+DECKS_1fad = DECKS
+# Label for default zap amount input
+Default_amount_per_zap_399d = ยอด Zap เริ่มต้น
+# Name of the default deck feed
+Default_Deck_fcca = Deck หลัก
+# Button label to delete a deck
+Delete_Deck_bb29 = ลบ Deck
+# Tooltip for deleting a column
+Delete_this_column_8d5a = ลบคอลัมน์นี้
+# Button label to delete a wallet
+Delete_Wallet_d1d4 = ลบวอลเล็ต
+# Profile display name field label
+Display_name_f9d9 = ชื่อที่แสดง
+# Domain identification message
+domain___will_be_used_for_identification_b67e = { $domain } จะใช้สำหรับการระบุตัวตน
+# Column title for editing deck
+Edit_Deck_4018 = แก้ไข Deck
+# Button label to edit a deck
+Edit_Deck_fd93 = แก้ไข Deck
+# Button label to edit user profile
+Edit_Profile_49e6 = แก้ไขโปรไฟล์
+# Column title for profile editing
+Edit_Profile_8ad4 = แก้ไขโปรไฟล์
+# Placeholder for hashtag input field
+Enter_the_desired_hashtags_here__for_multiple_space-separated_7a69 = ใส่แฮชแท็กที่ต้องการ (หากมีหลายอัน ให้คั่นด้วยการเว้นวรรค)
+# Placeholder for relay input field
+Enter_the_relay_here_1c8b = ใส่รีเลย์ที่นี่
+# Hint text to prompt entering the user's public key.
+Enter_the_user_s_key__npub__hex__nip05__here_650c = ใส่คีย์ของผู้ใช้ (npub, hex, nip05)...
+# Label for key input field. Key can be public key (npub), private key (nsec), or Nostr address (NIP-05).
+Enter_your_key_0fca = ใส่คีย์ของคุณ
+# Instructions for entering Nostr credentials
+Enter_your_public_key__npub___nostr_address__e_g___address____or_private_key__nsec___You_must_enter_your_private_key_to_be_able_to_post__reply__etc_48e9 =
+ โปรดใส่คีย์สาธารณะ (npub), ที่อยู่ Nostr (เช่น { $address }) หรือคีย์ส่วนตัว (nsec)
+ คุณจำเป็นต้องใส่คีย์ส่วนตัวเพื่อทำการโพสต์, ตอบกลับ และอื่นๆ
+# Label for find user button
+Find_User_bd12 = ค้นหาผู้ใช้
+# Title for hashtags column
+Hashtags_f8e0 = แฮชแท็ก
+# Title for Home column
+Home_8c19 = หน้าแรก
+# Label for deck icon selection
+Icon_b0ab = ไอคอน
+# Title for individual user column
+Individual_b776 = ปัจเจคบุคคล
+# Error message for invalid zap amount
+Invalid_amount_6630 = จำนวนเงินไม่ถูกต้อง
+# Error message for invalid key input
+Invalid_key_4726 = คีย์ไม่ถูกต้อง
+# Error message for invalid Nostr Wallet Connect URI
+Invalid_NWC_URI_031b = NWC URI ไม่ถูกต้อง
+# Zap amount button for 100000 sats. Abbreviated because the button is too small to display the full amount.
+k_100K_686c = 100K
+# Zap amount button for 10000 sats. Abbreviated because the button is too small to display the full amount.
+k_10K_f7e6 = 10K
+# Zap amount button for 20000 sats. Abbreviated because the button is too small to display the full amount.
+k_20K_4977 = 20K
+# Zap amount button for 50000 sats. Abbreviated because the button is too small to display the full amount.
+k_50K_c2dc = 50K
+# Zap amount button for 5000 sats. Abbreviated because the button is too small to display the full amount.
+k_5K_f7e6 = 5K
+# Description for your notes column
+Keep_track_of_your_notes___replies_a334 = ติดตามโน้ตและการตอบกลับของคุณ
+# Title for last note per user column
+Last_Note_per_User_17ad = โน้ตล่าสุดของผู้ใช้แต่ละคน
+# Bitcoin Lightning network address field label
+Lightning_network_address__lud16_ea51 = ที่อยู่ Lightning Network (lud16)
+# Login page title
+Login_9eef = เข้าสู่ระบบ
+# Login button text
+Login_now___let_s_do_this_5630 = เข้าสู่ระบบเลย — มาเริ่มกัน!
+# Text shown on blurred media from unfollowed users
+Media_from_someone_you_don_t_follow_5611 = สื่อจากคนที่คุณไม่ได้ติดตาม
+# Tooltip for moving a column
+Moves_this_column_to_another_position_0d4b = ย้ายคอลัมน์นี้ไปยังตำแหน่งอื่น
+# Title for the user's deck
+My_Deck_4ac5 = Deck ของฉัน
+# Label asking if the user is new to Nostr. Underneath this label is a button to create an account.
+New_to_Nostr_a2fd = มือใหม่สำหรับ Nostr?
+# NIP-05 identity field label
+Nostr_address__NIP-05_identity_74a2 = ที่อยู่ Nostr (NIP-05)
+# Default username when profile is not available
+nostrich_df29 = นกม่วง
+# Status label for disconnected relay
+Not_Connected_6292 = ไม่ได้เชื่อมต่อ
+# Link text for note references
+note_cad6 = โน้ต
+# Beta product warning message
+Notedeck_is_a_beta_product__Expect_bugs_and_contact_us_when_you_run_into_issues_a671 = Notedeck เป็นผลิตภัณฑ์รุ่นเบต้า ซึ่งอาจมีข้อบกพร่องเกิดขึ้นได้ โปรดติดต่อเราเมื่อคุณพบปัญหา
+# Filter label for notes only view
+Notes_03fb = โน้ต
+# Label for notes-only filter
+Notes_60d2 = โน้ต
+# Filter label for notes and replies view
+Notes___Replies_1ec2 = โน้ตและการตอบกลับ
+# Label for notes and replies filter
+Notes___Replies_6e3b = โน้ตและการตอบกลับ
+# Column title for notifications
+Notifications_d673 = การแจ้งเตือน
+# Title for notifications column
+Notifications_ef56 = การแจ้งเตือน
+# Relative time for very recent events (less than 3 seconds)
+now_2181 = เมื่อสักครู่
+# Button label to open email client
+Open_Email_25e9 = เปิดอีเมล
+# Instruction to open email client
+Open_your_default_email_client_to_get_help_from_the_Damus_team_68dc = เปิดโปรแกรมอีเมลของคุณเพื่อรับความช่วยเหลือจากทีม Damus
+# Placeholder text for NWC URI input
+Paste_your_NWC_URI_here_b471 = วาง NWC URI ของคุณที่นี่...
+# Error message for missing deck name
+Please_create_a_name_for_the_deck_38e7 = กรุณาตั้งชื่อ Deck
+# Error message for missing deck name and icon
+Please_create_a_name_for_the_deck_and_select_an_icon_0add = กรุณาตั้งชื่อ Deck และเลือกไอคอน
+# Error message for missing deck icon
+Please_select_an_icon_655b = กรุณาเลือกไอคอน
+# Button label to post a note
+Post_now_8a49 = โพสต์เลย
+# Instruction for copying logs
+Press_the_button_below_to_copy_your_most_recent_logs_to_your_system_s_clipboard__Then_paste_it_into_your_email_322e = กดปุ่มด้านล่างเพื่อคัดลอกข้อมูลบันทึกล่าสุด ไปยังคลิปบอร์ด จากนั้นนำไปวางในอีเมลของคุณ
+# Profile picture URL field label
+Profile_picture_81ff = รูปโปรไฟล์
+# Column title for quote composition
+Quote_475c = อ้างอิง
+# Error message when quote note cannot be found
+Quote_of_unknown_note_e4f0 = อ้างอิงโน้ตที่ไม่รู้จัก
+# Label for read-only profile mode
+Read_only_82ff = อ่านอย่างเดียว
+# Column title for relay management
+Relays_9d89 = รีเลย์
+# Label for relay list section
+Relays_ad5e = รีเลย์
+# Column title for reply composition
+Reply_3bf1 = ตอบกลับ
+# Hover text for reply button
+Reply_to_this_note_f5de = ตอบกลับโน้ตนี้
+# Error message when reply note cannot be found
+Reply_to_unknown_note_4401 = ตอบกลับโน้ตที่ไม่รู้จัก
+# Fallback template for replying to user
+replying_to__user_15ab = ตอบกลับ { $user }
+# Template for replying to user in unknown thread
+replying_to__user__in_someone_s_thread_e148 = ตอบกลับ { $user } ในเธรดของผู้อื่น
+# Template for replying to note in different user's thread
+replying_to__user__s__note__in__thread_user__s__thread_daa8 = ตอบกลับโน้ต { $note } ของ { $user } ในเธรด { $thread } ของ { $thread_user }
+# Template for replying to user's note
+replying_to__user__s__note_ccba = ตอบกลับโน้ต { $user } ใน { $note }
+# Template for replying to root thread
+replying_to__user__s__thread_444d = ตอบกลับ { $user } ใน { $thread }
+# Fallback text when reply note is not found
+replying_to_a_note_e0bc = ตอบกลับโน้ต
+# Hover text for repost button
+Repost_this_note_8e56 = รีโพสต์โน้ตนี้
+# Label for reposted notes
+Reposted_61c8 = รีโพสต์แล้ว
+# Heading for support section
+Running_into_a_bug_1796 = พบปัญหาในการใช้งานใช่ไหม?
+# Label for satoshis (Bitcoin unit) for custom zap amount input field
+SATS_45d7 = SATS
+# Unit label for satoshis (Bitcoin unit) for configuring default zap amount in wallet settings.
+sats_e5ec = sats
+# Button to save default zap amount
+Save_6f7c = บันทึก
+# Button label to save profile changes
+Save_changes_00db = บันทึกการเปลี่ยนแปลง
+# Column title for search page
+Search_c573 = ค้นหา
+# Placeholder for search notes input field
+Search_notes_42a6 = ค้นหาโน้ต...
+# Search in progress message
+Searching_for___query_5d18 = กำลังค้นหา '{ $query }'
+# Description for Home column
+See_notes_from_your_contacts_ac16 = ดูโน้ตจากผู้ติดต่อของคุณ
+# Description for universe column
+See_the_whole_nostr_universe_7694 = ท่องจักรวาล Nostr ทั้งหมด
+# Button label to send a zap
+Send_1ea4 = ส่ง
+# Description for last note per user column
+Show_the_last_note_for_each_user_from_a_list_50e7 = แสดงโน้ตล่าสุดของผู้ใช้แต่ละคนจากรายการ
+# Button label to sign out of account
+Sign_out_337b = ออกจากระบบ
+# Title for someone else's notes column
+Someone_else_s_Notes_7e5f = โน้ตของผู้อื่น
+# Title for someone else's notifications column
+Someone_else_s_Notifications_82e6 = การแจ้งเตือนของผู้อื่น
+# Description for contact list column
+Source_the_last_note_for_each_user_in_your_contact_list_e157 = ดึงโน้ตล่าสุดของผู้ใช้แต่ละคนในรายชื่อผู้ติดต่อ
+# Description for hashtags column
+Stay_up_to_date_with_a_certain_hashtag_88e3 = ติดตามความเคลื่อนไหวของแฮชแท็ก
+# Description for notifications column
+Stay_up_to_date_with_notifications_and_mentions_6f4e = ติดตามการแจ้งเตือนและการกล่าวถึง
+# Description for someone else's notes column
+Stay_up_to_date_with_someone_else_s_notes___replies_464c = ติดตามโน้ตและการตอบกลับของผู้อื่น
+# Description for someone else's notifications column
+Stay_up_to_date_with_someone_else_s_notifications_and_mentions_3473 = ติดตามการแจ้งเตือนและการกล่าวถึงของผู้อื่น
+# Description for individual user column
+Stay_up_to_date_with_someone_s_notes___replies_aa78 = ติดตามโน้ตและการตอบกลับของผู้อื่น
+# Description for your notifications column
+Stay_up_to_date_with_your_notifications_and_mentions_e73e = ติดตามการแจ้งเตือนและการกล่าวถึงของคุณ
+# Step 1 label in support instructions
+Step_1_8656 = ขั้นตอนที่ 1
+# Step 2 label in support instructions
+Step_2_d08d = ขั้นตอนที่ 2
+# Column title for subscribing to external user
+Subscribe_to_someone_else_s_notes_d1e9 = ติดตามโน้ตของผู้อื่น
+# Column title for subscribing to individual user
+Subscribe_to_someone_s_notes_b3c8 = ติดตามโน้ตของผู้อื่น
+# Hover text for dark mode toggle button
+Switch_to_dark_mode_4dec = เปลี่ยนเป็นโหมดมืด
+# Hover text for light mode toggle button
+Switch_to_light_mode_72ce = เปลี่ยนเป็นโหมดสว่าง
+# Button text to load blurred media
+Tap_to_Load_4b05 = แตะเพื่อโหลด
+# Message shown when Dave trial period has ended
+The_Dave_Nostr_AI_assistant_trial_has_ended_____Thanks_for_testing__Zap-enabled_Dave_coming_soon_c6c7 = ช่วงทดลองใช้ผู้ช่วย AI 'Dave Nostr' ได้สิ้นสุดลงแล้ว :( ขอบคุณที่ร่วมทดสอบ! Dave ที่รองรับการ Zap กำลังจะมาเร็วๆ นี้!
+# Column title for note thread view
+Thread_0f20 = เธรด
+# Link text for thread references
+thread_ad1f = เธรด
+# Title for universe column
+Universe_e01e = จักรวาล
+# Column title for universe feed
+Universe_ffaa = จักรวาล
+# Checkbox label for using wallet only for current account
+Use_this_wallet_for_the_current_account_only_61dc = ใช้วอลเล็ตนี้สำหรับบัญชีปัจจุบันเท่านั้น
+# Username and domain identification message
+username___at___domain___will_be_used_for_identification_a4fd = "{ $username }" ที่ "{ $domain }" จะถูกใช้สำหรับการระบุตัวตน
+# Profile username field label
+Username_daa7 = ชื่อผู้ใช้
+# Column title for wallet management
+Wallet_5e50 = วอลเล็ต
+# Hint for deck name input field
+We_recommend_short_names_083e = เราแนะนำให้ใช้ชื่อสั้นๆ
+# Profile website field label
+Website_7980 = เว็บไซต์
+# Placeholder for note input field
+Write_a_banger_note_here_bad2 = เขียนโน้ตปังๆ ที่นี่...
+# Placeholder text for key input field
+Your_key_here_81bd = ใส่คีย์ของคุณที่นี่...
+# Title for your notes column
+Your_Notes_f6db = โน้ตของคุณ
+# Title for your notifications column
+Your_Notifications_080d = การแจ้งเตือนของคุณ
+# Heading for zap (tip) action
+Zap_16b4 = Zap
+# Hover text for zap button
+Zap_this_note_42b2 = Zap โน้ตนี้
+
+# Pluralized strings
+
+# Search results count
+Got__count__results_for___query_85fb =
+ { $count ->
+ [one] ผลการค้นหา '{ $query }': พบ { $count } รายการ
+ *[other] ผลการค้นหา '{ $query }': พบ { $count } รายการ
+ }
diff --git a/crates/notedeck/src/i18n/manager.rs b/crates/notedeck/src/i18n/manager.rs
@@ -11,9 +11,10 @@ const DE: LanguageIdentifier = langid!("de");
const ES_419: LanguageIdentifier = langid!("es-419");
const ES_ES: LanguageIdentifier = langid!("es-ES");
const FR: LanguageIdentifier = langid!("FR");
+const TH: LanguageIdentifier = langid!("TH");
const ZH_CN: LanguageIdentifier = langid!("ZH_CN");
const ZH_TW: LanguageIdentifier = langid!("ZH_TW");
-const NUM_FTLS: usize = 8;
+const NUM_FTLS: usize = 9;
struct StaticBundle {
identifier: LanguageIdentifier,
@@ -46,6 +47,10 @@ const FTLS: [StaticBundle; NUM_FTLS] = [
ftl: include_str!("../../../../assets/translations/fr/main.ftl"),
},
StaticBundle {
+ identifier: TH,
+ ftl: include_str!("../../../../assets/translations/th/main.ftl"),
+ },
+ StaticBundle {
identifier: ZH_CN,
ftl: include_str!("../../../../assets/translations/zh-CN/main.ftl"),
},
@@ -90,6 +95,7 @@ impl Default for Localization {
ES_419.clone(),
ES_ES.clone(),
FR.clone(),
+ TH.clone(),
ZH_CN.clone(),
ZH_TW.clone(),
];