diff --git a/frontend/Locales/de.json b/frontend/Locales/de.json index 66a06f2..9e8dda2 100644 --- a/frontend/Locales/de.json +++ b/frontend/Locales/de.json @@ -157,7 +157,6 @@ "reposts": "Reposts", "newMessage": "{{newNotesCount}} neue Nachricht. Zum Aktualisieren wischen.", "newMessages": "{{newNotesCount}} neue Nachrichten. Zum Aktualisieren wischen." - }, "relayCard": { "moreInfo": "Mehr Infos", @@ -269,7 +268,8 @@ "es": "Español", "fr": "Français", "ru": "Русский", - "de": "Deutsch" + "de": "Deutsch", + "zhCn": "简体中文" }, "profileShare": { "notifications": { diff --git a/frontend/Locales/en.json b/frontend/Locales/en.json index a9ca167..7a31acc 100644 --- a/frontend/Locales/en.json +++ b/frontend/Locales/en.json @@ -279,7 +279,8 @@ "es": "Español", "fr": "Français", "ru": "Русский", - "de": "Deutsch" + "de": "Deutsch", + "zhCn": "简体中文" }, "profileShare": { "notifications": { diff --git a/frontend/Locales/es.json b/frontend/Locales/es.json index ad5d560..8687bbc 100644 --- a/frontend/Locales/es.json +++ b/frontend/Locales/es.json @@ -262,7 +262,8 @@ "es": "Español", "fr": "Français", "ru": "Русский", - "de": "Deutsch" + "de": "Deutsch", + "zhCn": "简体中文" }, "profileShare": { "notifications": { diff --git a/frontend/Locales/fr.json b/frontend/Locales/fr.json index bc2f201..9965def 100644 --- a/frontend/Locales/fr.json +++ b/frontend/Locales/fr.json @@ -64,7 +64,8 @@ "es": "Español", "fr": "Français", "ru": "Русский", - "de": "Deutsch" + "de": "Deutsch", + "zhCn": "简体中文" }, "configPage": { "showPublicImages": "Afficher les images dans le flux global", diff --git a/frontend/Locales/ru.json b/frontend/Locales/ru.json index 819e3ce..c19a594 100644 --- a/frontend/Locales/ru.json +++ b/frontend/Locales/ru.json @@ -261,7 +261,8 @@ "es": "Español", "fr": "Français", "ru": "Русский", - "de": "Deutsch" + "de": "Deutsch", + "zhCn": "简体中文" }, "textContent": { "invoice": "Lightning Network invoice" diff --git a/frontend/Locales/zh.json b/frontend/Locales/zhCn.json similarity index 89% rename from frontend/Locales/zh.json rename to frontend/Locales/zhCn.json index c5e6387..446c803 100644 --- a/frontend/Locales/zh.json +++ b/frontend/Locales/zhCn.json @@ -164,6 +164,14 @@ "newMessages": "{{newNotesCount}} 条新的 Notes,下拉刷新" }, "relaysPage": { + "resilienceTitle": "Resilience (experimental)", + "resilienceDescription": "The nostr protocol provides a good amount of tools to build a desentralized network, but unlike other desentralized protocols such as Bitcoin, it's not inherent by defaul on his usage.\n\nTo ahcieve such goal, clients and relays should activally colaborate. Nostros resiliense mode tries to, first, expose these concerns to their users, and secondly, start experimening with new pattern and way to help on network' resilency.\n\nFunctional implementation will soon endup appearing on Nostros by default.", + "resilienceCategories": "Resilience exposure", + "resilienceCategoriesDescription": "A first approach Nostros is testing is randomly calculate (based on received contats' events) what are the most resilient relays. It tries to avoid both relays with too much events (centralization) and relays with almost no events (battery draining).\n\nThe goal is to generate a list of 5 relays and cover all contacts. But if this is not possible, it will search among other realys, warning to the user about it.", + "centralized": "Centralized", + "small": "Small", + "contacts": "# Contacts", + "resilienceMode": "Resilience (experimental)", "relayName": "中继器链接地址", "globalFeed": "全局信息流", "active": "激活", @@ -266,7 +274,8 @@ "es": "Español", "fr": "Français", "ru": "Русский", - "de": "Deutsch" + "de": "Deutsch", + "zhCn": "简体中文" }, "profileCard": { "notifications": { diff --git a/frontend/Pages/ConfigPage/index.tsx b/frontend/Pages/ConfigPage/index.tsx index 0419cea..832e3d6 100644 --- a/frontend/Pages/ConfigPage/index.tsx +++ b/frontend/Pages/ConfigPage/index.tsx @@ -92,7 +92,7 @@ export const ConfigPage: React.FC = () => { }, []) const languageOptions = React.useMemo(() => { - return ['en', 'es', 'fr', 'ru', 'de'].map((language, index) => { + return ['en', 'es', 'fr', 'ru', 'de', 'zhCn'].map((language, index) => { return { key: index, title: {t(`language.${language}`)}, diff --git a/frontend/i18n.config.ts b/frontend/i18n.config.ts index 2a73fa5..69d8efd 100644 --- a/frontend/i18n.config.ts +++ b/frontend/i18n.config.ts @@ -6,6 +6,7 @@ import es from './Locales/es.json' import ru from './Locales/ru.json' import fr from './Locales/fr.json' import de from './Locales/de.json' +import zhCn from './Locales/zhCn.json' /* eslint-disable import/no-duplicates */ import setDefaultOptions from 'date-fns/setDefaultOptions' import { @@ -14,6 +15,7 @@ import { ru as dateRu, fr as dateFr, de as dateDe, + zhCN as dateZhCh, } from 'date-fns/locale' /* eslint-enable import/no-duplicates */ @@ -28,6 +30,7 @@ const dateLocales: Record = { en: dateEnUS, fr: dateFr, de: dateDe, + zhCn: dateZhCh, } const deviceLocale: string = locale?.split('_')[0] ?? 'en' setDefaultOptions({ locale: dateLocales[deviceLocale] }) @@ -42,6 +45,7 @@ i18n.use(initReactI18next).init({ ru, fr, de, + zhCn, }, lng: locale.substring(0, 2), ns: ['common'],