Update localization files + references (#4556)

* Initial plan

* Add localization support to NameChangeModal component

Co-authored-by: gabek <414923+gabek@users.noreply.github.com>

* Add NameChangeModal translations to English language file

Co-authored-by: gabek <414923+gabek@users.noreply.github.com>

* fix(i18n): fix localization keys

* chore(test): add i18n test

* chore(i18n): update translation script

* chore(i18n): reorgnize translation keys and update components

* chore: fix linting warnings

* chore(i18n): update all the language files

* feat(i18n): add last live ago i18n key

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: gabek <414923+gabek@users.noreply.github.com>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
This commit is contained in:
Copilot
2025-09-15 19:27:56 -07:00
committed by GitHub
co-authored by gabek copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Gabe Kangas
parent 401b5897e2
commit 1cf923a5af
46 changed files with 6053 additions and 4639 deletions
+150 -178
View File
@@ -1,179 +1,151 @@
{
"Add your Owncast instance to the Fediverse": "Add your Owncast instance to the Fediverse",
"Admin": {
"EditInstanceDetails": {
"directoryDescription": "अपने दर्शकों को <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast निर्देशिका</strong></a> में दिखाई देकर बढ़ाएं। यह एक बाहरी सेवा है जिसे Owncast प्रोजेक्ट द्वारा संचालित किया जाता है। <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">अधिक जानें</a>.",
"offlineMessageDescription": "ऑफलाइन संदेश आपके पृष्ठ के आगंतुकों को तब दिखाया जाता है जब आप स्ट्रीमिंग नहीं कर रहे होते हैं। मार्कडाउन समर्थित है।",
"serverUrlRequiredForDirectory": "आपको निर्देशिका को सक्षम करने के लिए अपने <strong>सर्वर URL</strong> को ऊपर सेट करना होगा।"
},
"emojiPageDescription": "<strong><em>खोई हुई अनुवाद Admin.emojiPageDescription: कृपया रिपोर्ट करें</em></strong>",
"emojiUploadBulkGuide": "<strong><em>खोई हुई अनुवाद Admin.emojiUploadBulkGuide: कृपया रिपोर्ट करें</em></strong>",
"emojis": "<strong><em>खोई हुई अनुवाद Admin.emojis: कृपया रिपोर्ट करें</em></strong>",
"uploadNewEmoji": "<strong><em>खोई हुई अनुवाद Admin.uploadNewEmoji: कृपया रिपोर्ट करें</em></strong>"
},
"Banned Users": "Banned Users",
"Bring in moderators to help keep your chat in order": "अपने चैट को व्यवस्थित रखने में मदद करने के लिए मॉडरेटर लाएँ।",
"CPU": "CPU",
"Chat Messages": "Chat Messages",
"Chat is disabled": "Chat is disabled",
"Chat is offline": "Chat is offline",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat will continue to be disabled until you begin a live stream": "Chat will continue to be disabled until you begin a live stream.",
"Click and never miss future streams!": "Click and never miss future streams!",
"Common": {
"poweredByOwncastVersion": "<a href='https://owncast.online'>Owncast व{{versionNumber}}</a> द्वारा शक्ति प्राप्त है"
},
"Common tasks": "Common tasks",
"Connected": "Connected",
"Contribute": "Contribute",
"Current stream": "Current stream",
"Current viewers": "Current viewers",
"Disk": "Disk",
"Documentation": "Documentation",
"Embed your video onto other sites": "Embed your video onto other sites",
"Enable Owncast social features": "Enable Owncast social features",
"Error": "Error",
"FAQ": "FAQ",
"Find an audience on the Owncast Directory": "Find an audience on the Owncast Directory",
"Fix your problems": "Fix your problems",
"Frontend": {
"BrowserNotifyModal": {
"allowButton": "अनुमति दें",
"blockButton": "अवरोध",
"deniedDescription": "{{hostname}} से पुश सूचनाओं को सक्षम करने के लिए, कृपया इस साइट के लिए अपने ब्राउज़र अनुमति सेटिंग्स तक पहुँचें और सूचनाएँ चालू करें। फिर, इस पृष्ठ को पुनः लोड करें ताकि आपकी अद्यतन सेटिंग्स इस साइट पर लागू हो सकें। <a href='https://owncast.online/docs/notifications'>और जानें।</a>",
"deniedTitle": "आपके डिवाइस पर सूचनाएँ अवरुद्ध हैं",
"enabledDescription": "{{hostname}} से पुश सूचनाओं को निष्क्रिय करने के लिए, कृपया इस साइट के लिए अपने ब्राउज़र अनुमति सेटिंग्स तक पहुँचें और सूचनाएँ बंद करें। <a href='https://owncast.online/docs/notifications'>और जानें।</a>",
"enabledTitle": "सूचनाएँ सक्रिय हैं",
"errorTitle": "ब्राउज़र सूचना त्रुटि",
"iosAddButton": "जोड़ें",
"iosAddToHomeScreen": "होम स्क्रीन पर जोड़ें",
"iosAllowPrompt": "अनुमति दें",
"iosComeBack": "इस स्क्रीन पर वापस आएं और सूचनाएँ सक्षम करें।",
"iosDescription": "यह सुनिश्चित करने के लिए कुछ अतिरिक्त कदम उठाने की आवश्यकता है कि जब आपके पसंदीदा स्ट्रीम लाइव होते हैं, तो आपको सूचित किया जाए।",
"iosNameAndTap": "इस लिंक को एक नाम दें और अपने होम स्क्रीन पर नए आइकन पर टैप करें",
"iosShareButton": "शेयर करें",
"iosTitle": "iOS पर सूचनाएं प्राप्त करें",
"learnMore": "और जानें",
"mainDescription": "जब भी यह स्ट्रीम लाइव होती है, तो आपको ब्राउज़र में सूचित किया जाता है।",
"permissionWantsTo": "{{hostname}} चाहता है",
"showNotifications": "सूचनाएँ दिखाएं",
"unsupported": "ब्राउज़र में ब्राउज़र सूचनाएँ समर्थित नहीं हैं।",
"unsupportedLocal": "स्थानीय सर्वरों के लिए ब्राउज़र सूचनाएँ समर्थित नहीं हैं।"
},
"chatOffline": "<strong><em>अनुवाद गायब Frontend.chatOffline: कृपया रिपोर्ट करें</em></strong>",
"componentError": "त्रुटि: {{message}}",
"helloWorld": "<strong><em>अनुवाद गायब Frontend.helloWorld: कृपया रिपोर्ट करें</em></strong>",
"notificationMessage": "<strong><em>अनुवाद गायब Frontend.notificationMessage: कृपया रिपोर्ट करें</em></strong>",
"offlineBasic": "यह स्ट्रीम ऑफ़लाइन है। कृपया जल्द ही वापस आएं!",
"offlineFediverseOnly": "यह स्ट्रीम ऑफ़लाइन है। <span class='follow-link'>अनुसरण करें</span> {{fediverseAccount}} Fediverse पर अगली बार देखने के लिए जब {{streamer}} लाइव जाएं।",
"offlineNotifyAndFediverse": "यह स्ट्रीम ऑफ़लाइन है। आप अगले बार जब {{streamer}} लाइव जाएं तो <span class='notify-link'>सूचित</span> हो सकते हैं या <span class='follow-link'>अनुसरण</span> कर सकते हैं {{fediverseAccount}} को Fediverse पर।",
"offlineNotifyOnly": "यह स्ट्रीम ऑफ़लाइन है। <span class='notify-link'>सूचित हों</span> अगली बार जब {{streamer}} लाइव जाएं।"
},
"Hardware Info": "Hardware Info",
"Healthy Stream": "Healthy Stream",
"Help configuring my broadcasting software": "Help configuring my broadcasting software",
"Hidden messages": "Hidden messages",
"Hide": "Hide",
"How can we help you?": "How can we help you?",
"I found a bug": "I found a bug",
"I have a general question": "I have a general question",
"I want to build add-ons for Owncast": "I want to build add-ons for Owncast",
"I want to configure my owncast instance": "I want to configure my owncast instance",
"I want to customize my website": "I want to customize my website",
"I want to embed my stream into another site": "I want to embed my stream into another site",
"I want to tweak my video output": "I want to tweak my video output",
"I want to use an external storage provider": "I want to use an external storage provider",
"IP Bans": "IP Bans",
"If you found a bug, then please": "If you found a bug, then please",
"Inbound Audio Stream": "Inbound Audio Stream",
"Inbound Stream Details": "Inbound Stream Details",
"Inbound Video Stream": "Inbound Video Stream",
"Info": "Info",
"Input": "Input",
"Last 12 hours": "Last 12 hours",
"Last 24 hours": "Last 24 hours",
"Last 3 months": "Last 3 months",
"Last 30 days": "Last 30 days",
"Last 6 months": "Last 6 months",
"Last 7 days": "Last 7 days",
"Last live ago": "पिछली बार लाइव {{timeAgo}} पहले",
"Learn how to point your existing software to your new server and start streaming your content": "Learn how to point your existing software to your new server and start streaming your content.",
"Learn how you can add your Owncast stream to other sites you control": "Learn how you can add your Owncast stream to other sites you control.",
"Learn more": "Learn more",
"Learn more about chat moderation here": "यहाँ चैट मॉडरेशन के बारे में अधिक जानें",
"Level": "Level",
"Link": "Link",
"List yourself in the Owncast Directory and show off your stream": {
" Enable it in": "List yourself in the Owncast Directory and show off your stream. Enable it in"
},
"Logs": "Logs",
"Manage the messages from viewers that show up on your stream": "Manage the messages from viewers that show up on your stream.",
"Max viewers last stream": "Max viewers last stream",
"Max viewers this stream": "Max viewers this stream",
"Memory": "Memory",
"Message": "Message",
"Moderators": "Moderators",
"Most general questions are answered in our": "Most general questions are answered in our",
"News & Updates from Owncast": "News & Updates from Owncast",
"No": "No",
"No hardware details have been collected yet": "No hardware details have been collected yet.",
"No news": "No news.",
"No stream is active": "No stream is active",
"No viewer data has been collected yet": "No viewer data has been collected yet.",
"Notify": "Notify",
"Other": "Other",
"Outbound Audio Stream": "Outbound Audio Stream",
"Outbound Stream Details": "Outbound Stream Details",
"Outbound Video Stream": "Outbound Video Stream",
"Overridden via command line": "Overridden via command line.",
"Peak viewer count": "Peak viewer count",
"Playback Health": "Playback Health",
"Please wait": "Please wait",
"Read the Docs": "Read the Docs",
"Show": "Show",
"Skip to footer": "Skip to footer",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to player": "Skip to player",
"Source": "Source",
"Stay updated!": "Stay updated!",
"Stream health represents": "Stream health represents",
"Stream started": "Stream started",
"TROUBLESHOOT": "TROUBLESHOOT",
"Testing": {
"itemCount": "<strong><em>अनुवाद गायब Testing.itemCount: कृपया रिपोर्ट करें</em></strong>",
"messageCount": "<strong><em>अनुवाद गायब Testing.messageCount: कृपया रिपोर्ट करें</em></strong>",
"noPluralKey": "<strong><em>अनुवाद गायब Testing.noPluralKey: कृपया रिपोर्ट करें</em></strong>",
"simpleKey": "<strong><em>अनुवाद गायब Testing.simpleKey: कृपया रिपोर्ट करें</em></strong>"
},
"Time": "Time",
"Timestamp": "Timestamp",
"Troubleshooting": "Troubleshooting",
"Use your broadcasting software": "Use your broadcasting software",
"User": "User",
"View": "View",
"Viewer Info": "Viewer Info",
"Viewers": "Viewers",
"Visible messages": "Visible messages",
"Visit the": "Visit the",
"Warning": "Warning",
"When a stream is active and chat is enabled, connected chat clients will be displayed here": "When a stream is active and chat is enabled, connected chat clients will be displayed here.",
"Yes": "Yes",
"You can build your own bots, overlays, tools and add-ons with our": "You can build your own bots, overlays, tools and add-ons with our",
"You should start one": "You should start one.",
"developer APIs": "developer APIs.",
"discussions": "discussions",
"documentation": "documentation",
"let us know": "let us know",
"max viewers": "max viewers",
"of all known players": {
" Other player status is unknown": "of all known players. Other player status is unknown."
},
"offline": "offline",
"offline_basic": "यह स्ट्रीम ऑफ़लाइन है। कृपया जल्द ही देखें!",
"or exist in our": "or exist in our",
"settings": "settings.",
"to configure additional details about your viewers": "to configure additional details about your viewers.",
"to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream": "to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream.",
"used": "used"
}
"Admin": {
"EditInstanceDetails": {
"directoryDescription": "अपने दर्शकों को <a href=\"https://owncast.directory\" target=\"_blank\" rel=\"noreferrer\"><strong>Owncast निर्देशिका</strong></a> में दिखाई देकर बढ़ाएं। यह एक बाहरी सेवा है जिसे Owncast प्रोजेक्ट द्वारा संचालित किया जाता है। <a href=\"https://owncast.online/docs/directory/?source=admin\" target=\"_blank\" rel=\"noopener noreferrer\">अधिक जानें</a>.",
"offlineMessageDescription": "ऑफलाइन संदेश आपके पृष्ठ के आगंतुकों को तब दिखाया जाता है जब आप स्ट्रीमिंग नहीं कर रहे होते हैमार्कडाउन समर्थित है।",
"serverUrlRequiredForDirectory": "आपको निर्देशिका को सक्षम करने के लिए अपने <strong>सर्वर URL</strong> को ऊपर सेट करना होगा।"
},
"HardwareInfo": {
"cpu": "CPU",
"disk": "Disk",
"memory": "Memory",
"noDetails": "No hardware details have been collected yet.",
"pleaseWait": "Please wait",
"title": "Hardware Info",
"used": "used"
},
"Help": {
"bugPlease": "If you found a bug, then please",
"buildAddons": "I want to build add-ons for Owncast",
"buildTools": "You can build your own bots, overlays, tools and add-ons with our",
"commonTasks": "Common tasks",
"configureBroadcasting": "Help configuring my broadcasting software",
"configureInstance": "I want to configure my owncast instance",
"customizeWebsite": "I want to customize my website",
"developerApis": "developer APIs.",
"discussions": "discussions",
"documentation": "Documentation",
"embedStream": "I want to embed my stream into another site",
"faq": "FAQ",
"fixProblems": "Fix your problems",
"foundBug": "I found a bug",
"generalAnswered": "Most general questions are answered in our",
"generalQuestion": "I have a general question",
"learnMore": "Learn more",
"letUsKnow": "let us know",
"orExist": "or exist in our",
"other": "Other",
"readDocs": "Read the Docs",
"title": "How can we help you?",
"troubleshooting": "Troubleshooting",
"tweakVideo": "I want to tweak my video output",
"useStorage": "I want to use an external storage provider"
},
"LogTable": {
"error": "Error",
"info": "Info",
"level": "Level",
"logs": "Logs",
"message": "Message",
"timestamp": "Timestamp",
"warning": "Warning"
},
"NewsFeed": {
"link": "Link",
"noNews": "No news.",
"title": "News & Updates from Owncast"
},
"VideoVariantForm": {
"bitrateDisabledPassthrough": "Bitrate selection is disabled when Video Passthrough is enabled.",
"bitrateGoodForHigh": "Good for high speed & high bitrate viewers.",
"bitrateGoodForMost": "Good for most viewers, bandwidths and resolutions.",
"bitrateGoodForSlow": "Good for slow, mobile and low bitrate viewers.",
"bitrateValueKbps": "{{bitrate}} kbps"
},
"ViewerInfo": {
"currentStream": "Current stream",
"currentViewers": "Current viewers",
"last12Hours": "Last 12 hours",
"last24Hours": "Last 24 hours",
"last30Days": "Last 30 days",
"last3Months": "Last 3 months",
"last6Months": "Last 6 months",
"last7Days": "Last 7 days",
"maxViewers": "max viewers",
"maxViewersLastStream": "Max viewers last stream",
"maxViewersThisStream": "Max viewers this stream",
"noData": "No viewer data has been collected yet.",
"pleaseWait": "Please wait",
"title": "Viewer Info",
"viewers": "Viewers"
},
"deleteEmoji": "Delete emoji",
"emojiPageDescription": "<strong><em>खोई हुई अनुवाद Admin.emojiPageDescription: कृपया रिपोर्ट करें</em></strong>",
"emojiUploadBulkGuide": "<strong><em>खोई हुई अनुवाद Admin.emojiUploadBulkGuide: कृपया रिपोर्ट करें</em></strong>",
"emojis": "<strong><em>खोई हुई अनुवाद Admin.emojis: कृपया रिपोर्ट करें</em></strong>",
"uploadNewEmoji": "<strong><em>खोई हुई अनुवाद Admin.uploadNewEmoji: कृपया रिपोर्ट करें</em></strong>"
},
"Common": {
"poweredByOwncastVersion": "<a href='https://owncast.online'>Owncast व{{versionNumber}}</a> द्वारा शक्ति प्राप्त है"
},
"Frontend": {
"BrowserNotifyModal": {
"allowButton": "अनुमति दें",
"blockButton": "अवरोध",
"deniedDescription": "{{hostname}} से पुश सूचनाओं को सक्षम करने के लिए, कृपया इस साइट के लिए अपने ब्राउज़र अनुमति सेटिंग्स तक पहुँचें और सूचनाएँ चालू करें। फिर, इस पृष्ठ को पुनः लोड करें ताकि आपकी अद्यतन सेटिंग्स इस साइट पर लागू हो सकें। <a href='https://owncast.online/docs/notifications'>और जानें।</a>",
"deniedTitle": "आपके डिवाइस पर सूचनाएँ अवरुद्ध हैं",
"enabledDescription": "{{hostname}} से पुश सूचनाओं को निष्क्रिय करने के लिए, कृपया इस साइट के लिए अपने ब्राउज़र अनुमति सेटिंग्स तक पहुँचें और सूचनाएँ बंद करें। <a href='https://owncast.online/docs/notifications'>और जानें।</a>",
"enabledTitle": "सूचनाएँ सक्रिय हैं",
"errorMessage": "Error registering for live notifications: {{message}}. Make sure you're not inside a private browser environment or have previously disabled notifications for this stream.",
"errorTitle": "ब्राउज़र सूचना त्रुटि",
"iosAddButton": "जोड़ें",
"iosAddToHomeScreen": "होम स्क्रीन पर जोड़ें",
"iosAllowPrompt": "अनुमति दें",
"iosComeBack": "इस स्क्रीन पर वापस आएं और सूचनाएँ सक्षम करें।",
"iosDescription": "यह सुनिश्चित करने के लिए कुछ अतिरिक्त कदम उठाने की आवश्यकता है कि जब आपके पसंदीदा स्ट्रीम लाइव होते हैं, तो आपको सूचित किया जाए।",
"iosNameAndTap": "इस लिंक को एक नाम दें और अपने होम स्क्रीन पर नए आइकन पर टैप करें",
"iosShareButton": "शेयर करें",
"iosTitle": "iOS पर सूचनाएं प्राप्त करें",
"learnMore": "और जानें",
"mainDescription": "जब भी यह स्ट्रीम लाइव होती है, तो आपको ब्राउज़र में सूचित किया जाता है।",
"permissionWantsTo": "{{hostname}} चाहता है",
"showNotifications": "सूचनाएँ दिखाएं",
"unsupported": "ब्राउज़र में ब्राउज़र सूचनाएँ समर्थित नहीं हैं।",
"unsupportedLocal": "स्थानीय सर्वरों के लिए ब्राउज़र सूचनाएँ समर्थित नहीं हैं।"
},
"Footer": {
"contribute": "Contribute",
"documentation": "Documentation",
"source": "Source"
},
"Header": {
"chatOffline": "Chat is offline",
"chatWillBeAvailable": "Chat will be available when the stream is live.",
"skipToContent": "Skip to page content",
"skipToFooter": "Skip to footer",
"skipToOfflineMessage": "Skip to offline message",
"skipToPlayer": "Skip to player"
},
"NameChangeModal": {
"authInfo": "You can also authenticate an IndieAuth or Fediverse account via the \"Authenticate\" menu.",
"buttonText": "Change name",
"colorLabel": "Your Color",
"description": "Your chat display name is what people see when you send chat messages.",
"overLimit": "Over limit",
"placeholder": "Your chat display name"
},
"chatOffline": "<strong><em>अनुवाद गायब Frontend.chatOffline: कृपया रिपोर्ट करें</em></strong>",
"componentError": "त्रुटि: {{message}}",
"helloWorld": "<strong><em>अनुवाद गायब Frontend.helloWorld: कृपया रिपोर्ट करें</em></strong>",
"offlineBasic": "यह स्ट्रीम ऑफ़लाइन है। कृपया जल्द ही वापस आएं!",
"offlineFediverseOnly": "यह स्ट्रीम ऑफ़लाइन है। <span class='follow-link'>अनुसरण करें</span> {{fediverseAccount}} Fediverse पर अगली बार देखने के लिए जब {{streamer}} लाइव जाएं।",
"offlineNotifyAndFediverse": "यह स्ट्रीम ऑफ़लाइन है। आप अगले बार जब {{streamer}} लाइव जाएं तो <span class='notify-link'>सूचित</span> हो सकते हैं या <span class='follow-link'>अनुसरण</span> कर सकते हैं {{fediverseAccount}} को Fediverse पर।",
"offlineNotifyOnly": "यह स्ट्रीम ऑफ़लाइन है। <span class='notify-link'>सूचित हों</span> अगली बार जब {{streamer}} लाइव जाएं।"
},
"Testing": {
"itemCount": "<strong><em>अनुवाद गायब Testing.itemCount: कृपया रिपोर्ट करें</em></strong>",
"messageCount": "<strong><em>अनुवाद गायब Testing.messageCount: कृपया रिपोर्ट करें</em></strong>",
"noPluralKey": "<strong><em>अनुवाद गायब Testing.noPluralKey: कृपया रिपोर्ट करें</em></strong>",
"simpleKey": "<strong><em>अनुवाद गायब Testing.simpleKey: कृपया रिपोर्ट करें</em></strong>"
}
}