diff --git a/bitchat.xcodeproj/project.pbxproj b/bitchat.xcodeproj/project.pbxproj index fe3543c2..a6e3b6bd 100644 --- a/bitchat.xcodeproj/project.pbxproj +++ b/bitchat.xcodeproj/project.pbxproj @@ -337,6 +337,7 @@ es, ar, de, + fa, fr, he, id, diff --git a/bitchat/Localizable.xcstrings b/bitchat/Localizable.xcstrings index 80c3c11d..3a18fbb8 100644 --- a/bitchat/Localizable.xcstrings +++ b/bitchat/Localizable.xcstrings @@ -35,6 +35,12 @@ "value" : "saludar 👋" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "دست تکان دادن 👋" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -184,7 +190,15 @@ "#%@" : { "comment" : "Non-localizable channel hashtag format used in code", "extractionState" : "manual", - "shouldTranslate" : false + "shouldTranslate" : false, + "localizations" : { + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "#%@" + } + } + } }, "%@" : { "comment" : "Non-localizable symbol used in code", @@ -220,6 +234,12 @@ "value" : "%@" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -401,6 +421,12 @@ "value" : "%@ activos" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ فعال" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -580,6 +606,12 @@ "value" : "bitchat" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "bitchat" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -759,6 +791,12 @@ "value" : "liquid glass" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "شیشه مایع" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -938,6 +976,12 @@ "value" : "matrix" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "ماتریکس" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -1117,6 +1161,12 @@ "value" : "APARIENCIA" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "ظاهر" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -1296,6 +1346,12 @@ "value" : "LISTO" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "تمام" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -1475,6 +1531,12 @@ "value" : "une islas mesh cercanas a través de internet para que una multitud no quede dividida por el alcance de radio" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "جزیره‌های مش اطراف را از طریق اینترنت به هم وصل می‌کند تا یک جمع به‌خاطر برد رادیویی از هم جدا نماند" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -1654,6 +1716,12 @@ "value" : "puentes mesh" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پل‌زنی مش" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -1833,6 +1901,12 @@ "value" : "mensajes privados cifrados con el protocolo Noise" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پیام‌های خصوصی با پروتکل noise رمزنگاری می‌شوند" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -2012,6 +2086,12 @@ "value" : "cifrado de extremo a extremo" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "رمزنگاری سرتاسری" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -2191,6 +2271,12 @@ "value" : "los mensajes se retransmiten entre pares y llegan lejos" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پیام‌ها از طریق همتاها بازپخش می‌شوند و مسافت را طی می‌کنند" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -2370,6 +2456,12 @@ "value" : "alcance ampliado" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "برد گسترده" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -2549,6 +2641,12 @@ "value" : "recibe avisos cuando tus personas favoritas se conecten" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "وقتی افراد موردعلاقه‌ات می‌پیوندند باخبر شو" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -2728,6 +2826,12 @@ "value" : "favoritos" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "موردعلاقه‌ها" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -2907,6 +3011,12 @@ "value" : "canales geohash para chatear con personas en regiones cercanas a través de relays descentralizados anónimos" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "کانال‌های ژئوهش برای گپ با افراد مناطق نزدیک از طریق رله‌های ناشناس غیرمتمرکز" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -3086,6 +3196,12 @@ "value" : "canales locales" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "کانال‌های محلی" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -3265,6 +3381,12 @@ "value" : "usa @nickname para avisar a personas concretas" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "برای باخبر کردن افراد خاص از @نام‌مستعار استفاده کن" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -3444,6 +3566,12 @@ "value" : "menciones" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "منشن‌ها" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -3623,6 +3751,12 @@ "value" : "funciona sin internet utilizando Bluetooth de bajo consumo" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "بدون اینترنت با بلوتوث کم‌مصرف کار می‌کند" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -3802,6 +3936,12 @@ "value" : "comunicación sin conexión" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "ارتباط آفلاین" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -3981,6 +4121,12 @@ "value" : "FUNCIONES" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "امکانات" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -4160,6 +4306,12 @@ "value" : "• toca #mesh para cambiar de canal" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "• برای تغییر کانال روی #mesh بزن" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -4339,6 +4491,12 @@ "value" : "• toca tres veces el chat para limpiarlo" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "• برای پاک کردن، سه بار روی چت بزن" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -4518,6 +4676,12 @@ "value" : "• escribe / para ver los comandos" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "• برای دستورها / را تایپ کن" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -4697,6 +4861,12 @@ "value" : "• toca el ícono de personas para ver la lista" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "• برای فهرست روی آیکون افراد بزن" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -4876,6 +5046,12 @@ "value" : "• define tu apodo tocándolo" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "• با زدن روی نام مستعارت آن را تنظیم کن" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -5055,6 +5231,12 @@ "value" : "• toca el nombre de una persona para iniciar un MD" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "• برای شروع پیام خصوصی روی نام فرد بزن" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -5234,6 +5416,12 @@ "value" : "CÓMO USARLO" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "راهنمای استفاده" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -5414,6 +5602,12 @@ "value" : "bloqueado" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "مسدود" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -5593,6 +5787,12 @@ "value" : "el mensaje llegó a través de un puente mesh" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پیام از طریق پل مش رسیده" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -5773,6 +5973,12 @@ "value" : "sesión cifrada de extremo a extremo" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "نشست رمزنگاری‌شدهٔ سرتاسری" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -5953,6 +6159,12 @@ "value" : "cifrado fallido — mensajes no protegidos" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "رمزنگاری ناموفق — پیام‌ها ایمن نیستند" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -6133,6 +6345,12 @@ "value" : "favorito — habilita mensajes sin conexión vía Nostr cuando es mutuo" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "موردعلاقه — در صورت دوطرفه بودن، پیام آفلاین از طریق nostr فعال می‌شود" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -6313,6 +6531,12 @@ "value" : "físicamente en el área de este canal de ubicación" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "به‌صورت فیزیکی در محدودهٔ این کانال موقعیت است" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -6493,6 +6717,12 @@ "value" : "conectado directamente por Bluetooth" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "مستقیم از طریق بلوتوث متصل است" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -6673,6 +6903,12 @@ "value" : "alcanzable a través del mesh, retransmitido por otros" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "از طریق مش در دسترس است، با بازپخش دیگران" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -6853,6 +7089,12 @@ "value" : "alcanzable por internet (Nostr) — solo favoritos mutuos" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "از طریق اینترنت (nostr) در دسترس — فقط موردعلاقه‌های دوطرفه" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -7033,6 +7275,12 @@ "value" : "sin conexión — no alcanzable ahora" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "آفلاین — فعلاً در دسترس نیست" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -7213,6 +7461,12 @@ "value" : "teletransportado — se unió al canal desde otro lugar" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "تله‌پورت‌شده — از جای دیگری به کانال پیوسته" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -7393,6 +7647,12 @@ "value" : "SÍMBOLOS" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "نمادها" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -7573,6 +7833,12 @@ "value" : "mensajes privados sin leer" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پیام‌های خصوصی خوانده‌نشده" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -7753,6 +8019,12 @@ "value" : "identidad verificada" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "هویت تأییدشده" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -7933,6 +8205,12 @@ "value" : "fija notas en lugares con /drop, legibles por cualquiera que pase durante 24h. necesita ubicación." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "با /drop یادداشت به مکان‌ها سنجاق کن؛ هر رهگذری تا ۲۴ ساعت می‌تواند بخواند. به موقعیت نیاز دارد." + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -8113,6 +8391,12 @@ "value" : "notas de ubicación" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "یادداشت‌های موقعیت" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -8293,6 +8577,12 @@ "value" : "RED" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "شبکه" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -8473,6 +8763,12 @@ "value" : "mapa de peers y enlaces obtenidos de los anuncios del mesh" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "نقشهٔ همتاها و پیوندهایی که از اعلان‌های مش به دست آمده" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -8653,6 +8949,12 @@ "value" : "abre el mapa de topología del mesh" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "نقشهٔ توپولوژی مش را باز می‌کند" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -8833,6 +9135,12 @@ "value" : "topología del mesh" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "توپولوژی مش" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -9012,6 +9320,12 @@ "value" : "nuevo ID de peer generado periódicamente" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "شناسهٔ همتای جدید به‌طور منظم ساخته می‌شود" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -9191,6 +9505,12 @@ "value" : "identidad efímera" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "هویت موقت" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -9370,6 +9690,12 @@ "value" : "sin servidores, cuentas ni recopilación de datos" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "بدون سرور، حساب کاربری یا جمع‌آوری داده" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -9549,6 +9875,12 @@ "value" : "sin seguimiento" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "بدون ردیابی" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -9728,6 +10060,12 @@ "value" : "toca el logotipo tres veces para borrar todos los datos al instante" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "برای پاک کردن فوری همهٔ داده‌ها سه بار روی لوگو بزن" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -9907,6 +10245,12 @@ "value" : "modo pánico" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "حالت اضطراری" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -10086,6 +10430,12 @@ "value" : "PRIVACIDAD" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "حریم خصوصی" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -10265,6 +10615,12 @@ "value" : "celda de encuentro: %@" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "سلول ملاقات: %@" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -10444,6 +10800,12 @@ "value" : "aún no hay celda de encuentro — necesita acceso a la ubicación o un peer puente cercano" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "هنوز سلول ملاقاتی نیست — به دسترسی موقعیت یا یک همتای پل در نزدیکی نیاز دارد" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -10623,6 +10985,12 @@ "value" : "une islas mesh cercanas a través de internet: lo que dices en el canal mesh también llega a personas de tu zona fuera del alcance de radio, y sus mensajes aparecen aquí marcados con el símbolo de red. mientras tengas internet, tu dispositivo también lleva el tráfico del puente y de los canales de ubicación para teléfonos a tu alrededor que no tienen conexión." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "جزیره‌های مش اطراف را از طریق اینترنت به هم می‌پیوندد: حرف‌هایت در کانال مش به افراد منطقه‌ات فراتر از برد رادیویی هم می‌رسد و پیام‌های آن‌ها اینجا با نماد شبکه نشان داده می‌شود. تا وقتی اینترنت داری، دستگاهت ترافیک پل و کانال‌های موقعیت را هم برای گوشی‌های اطرافت که اینترنت ندارند جابه‌جا می‌کند." + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -10802,6 +11170,12 @@ "value" : "puente mesh" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پل مش" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -10981,6 +11355,12 @@ "value" : "CONECTIVIDAD" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "اتصال" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -11160,6 +11540,12 @@ "value" : "borrado de pánico" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پاک‌سازی اضطراری" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -11339,6 +11725,12 @@ "value" : "borrar todo" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پاک کردن همه‌چیز" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -11518,6 +11910,12 @@ "value" : "¿borrar todos los datos?" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "همهٔ داده‌ها پاک شود؟" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -11697,6 +12095,12 @@ "value" : "borra todos los mensajes, claves e identidad. tocar tres veces el logotipo de bitchat/ hace lo mismo, al instante." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "همهٔ پیام‌ها، کلیدها و هویت را پاک می‌کند. سه بار زدن روی لوگوی bitchat/ هم همین کار را فوری انجام می‌دهد." + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -11876,6 +12280,12 @@ "value" : "ZONA DE PELIGRO" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "منطقهٔ خطر" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -12055,6 +12465,12 @@ "value" : "info" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "اطلاعات" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -12234,6 +12650,12 @@ "value" : "vista" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "نما" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -12413,6 +12835,12 @@ "value" : "ajustes" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "تنظیمات" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -12592,6 +13020,12 @@ "value" : "sidegroupchat" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "گروه‌چت کناری" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -12771,6 +13205,12 @@ "value" : "transmite mientras hablas; la voz en vivo entrante se reproduce automáticamente" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "همان‌طور که حرف می‌زنی پخش می‌شود؛ صدای زندهٔ دریافتی خودکار پخش می‌شود" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -12950,6 +13390,12 @@ "value" : "mensajes de voz en vivo" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پیام‌های صوتی زنده" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -13129,6 +13575,12 @@ "value" : "VOZ" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "صدا" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -13309,6 +13761,12 @@ "value" : "En tu zona, conectado a través del puente" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "در منطقهٔ تو، متصل از طریق پل" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -13489,6 +13947,12 @@ "value" : "al otro lado del puente" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "آن‌سوی پل" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -13669,6 +14133,12 @@ "value" : "Elige una imagen" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "انتخاب تصویر" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -13848,6 +14318,12 @@ "value" : "cerrar" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "بستن" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -14027,6 +14503,12 @@ "value" : "cancelar" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "لغو" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -14206,6 +14688,12 @@ "value" : "cerrar" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "بستن" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -14385,6 +14873,12 @@ "value" : "copiar" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "کپی" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -14564,6 +15058,12 @@ "value" : "aceptar" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "باشه" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -14743,6 +15243,12 @@ "value" : "desactivado" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "خاموش" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -14922,6 +15428,12 @@ "value" : "activado" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "روشن" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -15101,6 +15613,12 @@ "value" : "desconocido" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "نامشخص" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -15280,6 +15798,12 @@ "value" : "agregar a favoritos" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "افزودن به موردعلاقه‌ها" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -15460,6 +15984,12 @@ "value" : "muestra la información de la app" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "اطلاعات برنامه را نشان می‌دهد" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -15640,6 +16170,12 @@ "value" : "adjuntar foto" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پیوست عکس" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -15820,6 +16356,12 @@ "value" : "abre la fototeca; usa la acción tomar foto para la cámara" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "کتابخانهٔ عکس را باز می‌کند؛ برای دوربین از گزینهٔ گرفتن عکس استفاده کن" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -15999,6 +16541,12 @@ "value" : "disponible vía Nostr" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "در دسترس از طریق Nostr" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -16178,6 +16726,12 @@ "value" : "volver al chat principal" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "بازگشت به چت اصلی" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -16357,6 +16911,12 @@ "value" : "%lld personas más al otro lado del puente" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld نفر دیگر آن‌سوی پل" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -16536,6 +17096,12 @@ "value" : "Llegó a través de un puente mesh" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "از طریق پل مش رسیده" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -16716,6 +17282,12 @@ "value" : "elegir foto" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "انتخاب عکس" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -16895,6 +17467,12 @@ "value" : "conectado por mesh" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "متصل از طریق مش" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -17075,6 +17653,12 @@ "value" : "toca para ver los detalles de entrega" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "برای دیدن جزئیات تحویل ضربه بزنید" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -17254,6 +17838,12 @@ "value" : "estado de cifrado: %@" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "وضعیت رمزنگاری: %@" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -17434,6 +18024,12 @@ "value" : "Puerta de enlace a internet activa, compartiendo tu conexión con el mesh" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "دروازه اینترنت فعال است؛ اتصال شما با مش به اشتراک گذاشته می‌شود" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -17613,6 +18209,12 @@ "value" : "Abre los ajustes para activar o desactivar la puerta de enlace" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "تنظیمات را برای روشن یا خاموش کردن دروازه باز می‌کند" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -17792,6 +18394,12 @@ "value" : "Chat de grupo" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "گپ گروهی" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -17972,6 +18580,12 @@ "value" : "ir a los mensajes más recientes" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پرش به آخرین پیام‌ها" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -18151,6 +18765,12 @@ "value" : "canales de ubicación" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "کانال‌های موقعیت" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -18330,6 +18950,12 @@ "value" : "Con puente: los mensajes también llegan a personas al otro lado del puente" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پل‌شده: پیام‌ها به افراد آن‌سوی پل هم می‌رسند" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -18509,6 +19135,12 @@ "value" : "Solo cerca: los mensajes se quedan dentro del alcance de radio" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "فقط اطراف: پیام‌ها در برد رادیویی می‌مانند" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -18689,6 +19321,12 @@ "value" : "Avisos" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "اطلاعیه‌ها" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -18869,6 +19507,12 @@ "value" : "%lld nuevos" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld جدید" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -19048,6 +19692,12 @@ "value" : "abrir chat privado sin leer" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "باز کردن گپ خصوصی خوانده‌نشده" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -19228,6 +19878,12 @@ "value" : "conectado" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "متصل" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -19408,6 +20064,12 @@ "value" : "nadie alcanzable" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "کسی در دسترس نیست" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -19699,6 +20361,34 @@ } } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "%#@people@" + }, + "substitutions" : { + "people" : { + "argNum" : 1, + "formatSpecifier" : "lld", + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d نفر" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d نفر" + } + } + } + } + } + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -20150,6 +20840,12 @@ "value" : "chat privado con %@" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "گپ خصوصی با %@" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -20329,6 +21025,12 @@ "value" : "disponible por mesh" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "در دسترس از طریق مش" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -20509,6 +21211,12 @@ "value" : "toca dos veces para empezar a grabar, toca dos veces de nuevo para enviar" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "برای شروع ضبط دوبار ضربه بزنید، برای ارسال دوباره دوبار ضربه بزنید" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -20689,6 +21397,12 @@ "value" : "grabar nota de voz" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "ضبط پیام صوتی" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -20869,6 +21583,12 @@ "value" : "grabando" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "در حال ضبط" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -21048,6 +21768,12 @@ "value" : "quitar de favoritos" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "حذف از علاقه‌مندی‌ها" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -21227,6 +21953,12 @@ "value" : "introduce un mensaje para enviarlo" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "برای ارسال، پیامی بنویسید" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -21406,6 +22138,12 @@ "value" : "toca dos veces para enviar" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "برای ارسال دوبار ضربه بزنید" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -21585,6 +22323,12 @@ "value" : "enviar mensaje" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "ارسال پیام" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -21764,6 +22508,12 @@ "value" : "%@ está hablando" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ در حال صحبت است" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -21944,6 +22694,12 @@ "value" : "tomar foto con la cámara" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "گرفتن عکس با دوربین" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -22123,6 +22879,12 @@ "value" : "alternar marcador para #%@" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "تغییر وضعیت نشانک #%@" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -22303,6 +23065,12 @@ "value" : "verificar cifrado" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "تأیید رمزنگاری" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -22482,6 +23250,12 @@ "value" : "toca para ver la huella de cifrado" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "برای دیدن اثرانگشت رمزنگاری ضربه بزنید" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -22661,6 +23435,12 @@ "value" : "bloquear" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "مسدود کردن" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -22840,6 +23620,12 @@ "value" : "mensaje directo" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پیام مستقیم" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -23019,6 +23805,12 @@ "value" : "abrazo" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "بغل" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -23198,6 +23990,12 @@ "value" : "mencionar" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "منشن" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -23378,6 +24176,12 @@ "value" : "reenviar" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "ارسال دوباره" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -23557,6 +24361,12 @@ "value" : "bofetada" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "سیلی" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -23736,6 +24546,12 @@ "value" : "acciones" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "اقدامات" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -23915,6 +24731,12 @@ "value" : "bluetooth está desactivado. Actívalo en Ajustes para usar BitChat." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "بلوتوث خاموش است. برای استفاده از bitchat لطفاً بلوتوث را در تنظیمات روشن کنید." + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -24094,6 +24916,12 @@ "value" : "bitChat necesita permiso de Bluetooth para conectarse con dispositivos cercanos. Habilita el acceso en Ajustes." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "bitchat برای اتصال به دستگاه‌های اطراف به مجوز بلوتوث نیاز دارد. لطفاً دسترسی بلوتوث را در تنظیمات فعال کنید." + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -24273,6 +25101,12 @@ "value" : "ajustes" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "تنظیمات" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -24452,6 +25286,12 @@ "value" : "se requiere Bluetooth" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "بلوتوث لازم است" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -24631,6 +25471,12 @@ "value" : "este dispositivo no admite Bluetooth. BitChat necesita Bluetooth para funcionar." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "این دستگاه از بلوتوث پشتیبانی نمی‌کند. bitchat برای کار کردن به بلوتوث نیاز دارد." + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -24810,6 +25656,12 @@ "value" : "las capturas de pantalla de los canales de ubicación revelarán tu ubicación. Piensa antes de compartirlas públicamente." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "اسکرین‌شات از کانال‌های موقعیت، موقعیت شما را لو می‌دهد. پیش از اشتراک‌گذاری عمومی فکر کنید." + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -24989,6 +25841,12 @@ "value" : "atención" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "توجه" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -25169,6 +26027,12 @@ "value" : "limpiar chat" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پاک کردن گپ" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -25349,6 +26213,12 @@ "value" : "¿limpiar este chat?" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "این گپ پاک شود؟" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -25528,6 +26398,12 @@ "value" : "bloquear o listar usuarios bloqueados" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "مسدود کردن یا فهرست همتاهای مسدود" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -25707,6 +26583,12 @@ "value" : "borrar los mensajes del chat" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پاک کردن پیام‌های گپ" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -25887,6 +26769,12 @@ "value" : "fija una nota en este lugar por 24 h" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "سنجاق کردن یادداشتی به این مکان برای ۲۴ ساعت" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -26066,6 +26954,12 @@ "value" : "agregar a favoritos" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "افزودن به علاقه‌مندی‌ها" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -26245,6 +27139,12 @@ "value" : "crear o gestionar grupos privados" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "ساخت یا مدیریت گروه‌های خصوصی" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -26425,6 +27325,12 @@ "value" : "mostrar los comandos disponibles" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "نمایش دستورات موجود" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -26604,6 +27510,12 @@ "value" : "enviar un abrazo caluroso" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "فرستادن یک بغل گرم برای کسی" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -26783,6 +27695,12 @@ "value" : "enviar mensaje privado" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "ارسال پیام خصوصی" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -26963,6 +27881,12 @@ "value" : "enviar un token de ecash Cashu en este chat" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "ارسال توکن ecash از cashu در این گپ" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -27143,6 +28067,12 @@ "value" : "medir el tiempo de ida y vuelta a un peer del mesh" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "اندازه‌گیری زمان رفت‌وبرگشت تا یک همتای مش" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -27322,6 +28252,12 @@ "value" : "abofetear a alguien con una trucha" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "سیلی زدن به کسی با ماهی قزل‌آلا" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -27502,6 +28438,12 @@ "value" : "estimar la ruta del mesh hasta un peer" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "تخمین مسیر مش تا یک همتا" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -27681,6 +28623,12 @@ "value" : "desbloquear a una persona" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "رفع مسدودی یک همتا" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -27860,6 +28808,12 @@ "value" : "quitar de favoritos" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "حذف از علاقه‌مندی‌ها" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -28039,6 +28993,12 @@ "value" : "ver quién está en línea" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "دیدن افراد آنلاین" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -28218,6 +29178,12 @@ "value" : "Con puente — llega a personas fuera del alcance de radio en esta zona" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پل‌شده — به افراد فراتر از برد رادیویی در این منطقه می‌رسد" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -28397,6 +29363,12 @@ "value" : "Solo cerca — este mensaje no cruzará el puente" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "فقط اطراف — این پیام از پل عبور نمی‌کند" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -28576,6 +29548,12 @@ "value" : "entregado a %1$d de %2$d miembros" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "تحویل‌شده به %1$d از %2$d عضو" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -28755,6 +29733,12 @@ "value" : "entregado a %@" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "تحویل‌شده به %@" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -28934,6 +29918,12 @@ "value" : "falló: %@" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "ناموفق: %@" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -29113,6 +30103,12 @@ "value" : "leído por %@" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "خوانده‌شده توسط %@" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -29292,6 +30288,12 @@ "value" : "esta persona está bloqueada" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "این فرد مسدود است" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -29472,6 +30474,12 @@ "value" : "cifrado fallido" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "رمزنگاری ناموفق بود" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -29652,6 +30660,12 @@ "value" : "no entregado" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "تحویل نشد" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -29831,6 +30845,12 @@ "value" : "no puedes enviarte mensajes a ti mismo" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "نمی‌توانید به خودتان پیام بدهید" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -30010,6 +31030,12 @@ "value" : "error al enviar" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "خطای ارسال" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -30189,6 +31215,12 @@ "value" : "destinatario desconocido" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "گیرنده ناشناس" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -30369,6 +31401,12 @@ "value" : "no se pudo enviar la nota de voz" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "ارسال پیام صوتی ناموفق بود" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -30549,6 +31587,12 @@ "value" : "nota de voz demasiado grande" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پیام صوتی بیش از حد بزرگ است" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -30729,6 +31773,12 @@ "value" : "enviando..." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "در حال ارسال..." + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -30909,6 +31959,12 @@ "value" : "enviado — aún sin confirmación de entrega" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "ارسال شد — هنوز تأیید تحویل نرسیده" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -31089,6 +32145,12 @@ "value" : "escuchado aquí antes · últimas 6 h" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "قبلاً اینجا شنیده شده · ۶ ساعت اخیر" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -31269,6 +32331,12 @@ "value" : "hay gente hablando en #%@ — toca para unirte" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "افرادی در #%@ گفتگو می‌کنند — برای پیوستن ضربه بزنید" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -31449,6 +32517,12 @@ "value" : "alguien está hablando en #%@ — toca para unirte" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "کسی در #%@ صحبت می‌کند — برای پیوستن ضربه بزنید" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -31629,6 +32703,12 @@ "value" : "buscar notas dejadas aquí" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "بررسی یادداشت‌های جامانده در اینجا" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -31809,6 +32889,12 @@ "value" : "estás en #%@ — un canal de ubicación público por internet" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "شما در #%@ هستید — یک کانال موقعیت عمومی روی اینترنت" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -31989,6 +33075,12 @@ "value" : "estás en #mesh — llega a personas dentro del alcance de Bluetooth" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "شما در #mesh هستید — به افراد در برد بلوتوث می‌رسد" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -32169,6 +33261,12 @@ "value" : "nadie a tu alcance todavía... los mensajes aparecerán aquí" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "هنوز کسی در برد نیست... پیام‌ها اینجا نمایش داده می‌شوند" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -32349,6 +33447,12 @@ "value" : "%lld notas dejadas aquí — toca para leer" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld یادداشت اینجا گذاشته شده — برای خواندن ضربه بزنید" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -32529,6 +33633,12 @@ "value" : "1 nota dejada aquí — toca para leer" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "۱ یادداشت اینجا گذاشته شده — برای خواندن ضربه بزنید" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -32709,6 +33819,12 @@ "value" : "%lld dispositivos pasaron dentro del alcance hoy" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld دستگاه امروز از محدوده برد عبور کردند" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -32889,6 +34005,12 @@ "value" : "1 dispositivo pasó dentro del alcance hoy" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "۱ دستگاه امروز از محدوده برد عبور کرد" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -33069,6 +34191,12 @@ "value" : "toca el nombre del canal de arriba para cambiar · toca bitchat/ para ayuda" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "برای تغییر، نام کانال بالا را ضربه بزنید · برای راهنما bitchat/ را ضربه بزنید" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -33249,6 +34377,12 @@ "value" : "Compartiendo tu conexión a internet con peers cercanos del mesh" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "اشتراک‌گذاری اتصال اینترنت شما با همتاهای مش اطراف" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -33429,6 +34563,12 @@ "value" : "Avisos: publicaciones fijadas para esta zona y el mesh" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "اطلاعیه‌ها: پست‌های سنجاق‌شده برای این منطقه و مش" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -33608,6 +34748,12 @@ "value" : "PERSONAS" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "افراد" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -33787,6 +34933,12 @@ "value" : "verificación: mostrar mi QR o escanear a un amigo" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "تأیید: نمایش QR من یا اسکن یک دوست" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -33966,6 +35118,12 @@ "value" : "create|invite|leave|list" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "create|invite|leave|list" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -34145,6 +35303,12 @@ "value" : "apodo" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "نام مستعار" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -34325,6 +35489,12 @@ "value" : "mensaje" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پیام" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -34505,6 +35675,12 @@ "value" : "mensaje #%@ — público" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پیام به #%@ — عمومی" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -34685,6 +35861,12 @@ "value" : "mensaje #mesh — público, cerca" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پیام به #mesh — عمومی، اطراف شما" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -34865,6 +36047,12 @@ "value" : "mensaje %@ — privado" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پیام به %@ — خصوصی" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -35045,6 +36233,12 @@ "value" : "token" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "توکن" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -35225,6 +36419,12 @@ "value" : "%lld nuevos" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld جدید" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -35404,6 +36604,12 @@ "value" : "activar ubicación" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "فعال‌سازی موقعیت" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -35583,6 +36789,12 @@ "value" : "copiar mensaje" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "کپی پیام" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -35762,6 +36974,12 @@ "value" : "mostrar menos" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "نمایش کمتر" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -35941,6 +37159,12 @@ "value" : "mostrar más" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "نمایش بیشتر" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -36120,6 +37344,12 @@ "value" : "ubicación no disponible" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "موقعیت در دسترس نیست" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -36299,6 +37529,12 @@ "value" : "pagar con Cashu" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پرداخت با cashu" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -36479,6 +37715,12 @@ "value" : "copiar token" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "کپی توکن" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -36658,6 +37900,12 @@ "value" : "pagar con Lightning" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پرداخت با لایتنینگ" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -36838,6 +38086,12 @@ "value" : "canjear en la cartera" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "دریافت در کیف پول" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -37018,6 +38272,12 @@ "value" : "canjear en la web" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "دریافت در وب" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -37198,6 +38458,12 @@ "value" : "conversación privada" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "گفتگوی خصوصی" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -37378,6 +38644,12 @@ "value" : "privado · cifrado de extremo a extremo" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "خصوصی · رمزنگاری سرتاسری" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -37557,6 +38829,12 @@ "value" : "grupo cifrado · solo miembros" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "گروه رمزنگاری‌شده · فقط اعضا" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -37736,6 +39014,12 @@ "value" : "estableciendo cifrado" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "در حال برقراری رمزنگاری" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -37915,6 +39199,12 @@ "value" : "cifrado fallido" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "رمزنگاری ناموفق" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -38094,6 +39384,12 @@ "value" : "sin cifrar" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "رمزنگاری‌نشده" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -38273,6 +39569,12 @@ "value" : "cifrado" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "رمزنگاری‌شده" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -38452,6 +39754,12 @@ "value" : "cifrado y verificado" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "رمزنگاری‌شده و تأییدشده" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -38631,6 +39939,12 @@ "value" : "estableciendo cifrado..." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "در حال برقراری رمزنگاری..." + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -38810,6 +40124,12 @@ "value" : "cifrado fallido" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "رمزنگاری ناموفق" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -38989,6 +40309,12 @@ "value" : "sin cifrar" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "رمزنگاری‌نشده" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -39168,6 +40494,12 @@ "value" : "cifrado" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "رمزنگاری‌شده" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -39347,6 +40679,12 @@ "value" : "cifrado y verificado" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "رمزنگاری‌شده و تأییدشده" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -39526,6 +40864,12 @@ "value" : "marcar como verificado" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "علامت‌گذاری به‌عنوان تأییدشده" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -39705,6 +41049,12 @@ "value" : "eliminar verificación" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "حذف تأیید" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -39884,6 +41234,12 @@ "value" : "⚠️ NO VERIFICADO" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "⚠️ تأییدنشده" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -40063,6 +41419,12 @@ "value" : "✓ VERIFICADO" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "✓ تأییدشده" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -40243,6 +41605,12 @@ "value" : "✓ AVALADO" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "✓ ضمانت‌شده" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -40422,6 +41790,12 @@ "value" : "no disponible: el handshake está en curso" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "در دسترس نیست - دست‌دهی در حال انجام" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -40601,6 +41975,12 @@ "value" : "has verificado la identidad de esta persona." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "هویت این شخص را تأیید کرده‌اید." + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -40780,6 +42160,12 @@ "value" : "compara estas huellas con %@ mediante un canal seguro." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "این اثرانگشت‌ها را از راهی امن با %@ مقایسه کنید." + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -41084,6 +42470,34 @@ } } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "توسط %#@people@ که تأیید کرده‌اید ضمانت شده" + }, + "substitutions" : { + "people" : { + "argNum" : 1, + "formatSpecifier" : "lld", + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d نفر" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d نفر" + } + } + } + } + } + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -41773,6 +43187,12 @@ "value" : "huella de la otra persona:" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "اثرانگشت او:" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -41952,6 +43372,12 @@ "value" : "verificación de seguridad" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "تأیید امنیتی" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -42131,6 +43557,12 @@ "value" : "tu huella:" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "اثرانگشت شما:" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -42310,6 +43742,12 @@ "value" : "bloquear" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "مسدود کردن" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -42489,6 +43927,12 @@ "value" : "desbloquear" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "رفع مسدودیت" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -42668,6 +44112,12 @@ "value" : "nadie cerca..." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "کسی این اطراف نیست..." + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -42848,6 +44298,12 @@ "value" : "en esta zona" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "در این منطقه" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -43028,6 +44484,12 @@ "value" : "teletransportado desde otro lugar" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "تلپورت‌شده از جای دیگر" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -43208,6 +44670,12 @@ "value" : "tú" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "شما" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -43387,6 +44855,12 @@ "value" : "bloqueado en geohash" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "در ژئوهش مسدود شده" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -43566,6 +45040,12 @@ "value" : " (tú)" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : " (شما)" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -43745,6 +45225,12 @@ "value" : "Abre el chat de grupo" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "گفتگوی گروهی را باز می‌کند" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -43924,6 +45410,12 @@ "value" : "(%@)" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "(%@)" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -44103,6 +45595,12 @@ "value" : "grupos" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "گروه‌ها" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -44282,6 +45780,12 @@ "value" : "Creador" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "سازنده" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -44461,6 +45965,12 @@ "value" : "Las imágenes solo están disponibles en los chats de mesh." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "تصاویر فقط در گفتگوهای مش در دسترس هستند." + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -44640,6 +46150,12 @@ "value" : "en vivo %@" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "زنده %@" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -44820,6 +46336,12 @@ "value" : "marcar canal" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "نشانک‌گذاری کانال" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -45000,6 +46522,12 @@ "value" : "quitar marcador" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "حذف نشانک" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -45180,6 +46708,12 @@ "value" : "cambia a este canal" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "به این کانال جابه‌جا می‌شود" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -45359,6 +46893,12 @@ "value" : "abrir ajustes" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "باز کردن تنظیمات" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -45538,6 +47078,12 @@ "value" : "eliminar acceso a la ubicación" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "حذف دسترسی موقعیت" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -45717,6 +47263,12 @@ "value" : "obtener mi ubicación y mis geohashes" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "دریافت موقعیت و ژئوهش‌های من" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -45896,6 +47448,12 @@ "value" : "teletransportar" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "تلپورت" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -46075,6 +47633,12 @@ "value" : "marcados" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "نشانک‌شده" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -46254,6 +47818,12 @@ "value" : "chatea con personas cercanas usando canales geohash. Solo se comparte un geohash aproximado, nunca GPS exacto. Tu IP se oculta al enrutar todo el tráfico por Tor." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "با کانال‌های ژئوهش با افراد نزدیک خود گفتگو کنید. ژئوهش انتخاب‌شده عمومی است و ممکن است منطقهٔ تقریبی شما را نشان دهد؛ GPS دقیق هرگز به اشتراک گذاشته نمی‌شود. با عبور همهٔ ترافیک از Tor، آدرس IP شما پنهان می‌ماند." + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -46433,6 +48003,12 @@ "value" : "geohash no válido" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "ژئوهش نامعتبر" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -46613,6 +48189,12 @@ "value" : "concede acceso a la ubicación para encontrar canales cercanos" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "برای یافتن کانال‌های اطراف، دسترسی موقعیت بدهید" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -46792,6 +48374,12 @@ "value" : "buscando canales cercanos…" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "در حال یافتن کانال‌های اطراف…" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -46971,6 +48559,12 @@ "value" : "mesh" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "مش" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -47150,6 +48744,12 @@ "value" : "permiso de ubicación denegado. Actívalo en Ajustes para usar los canales de ubicación." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "دسترسی موقعیت رد شد. برای استفاده از کانال‌های موقعیت، آن را در تنظیمات فعال کنید." + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -47441,6 +49041,34 @@ } } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ [%2$#@people_count@]" + }, + "substitutions" : { + "people_count" : { + "argNum" : 2, + "formatSpecifier" : "lld", + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d نفر" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d نفر" + } + } + } + } + } + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -47892,6 +49520,12 @@ "value" : "#%@ • %@" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "#%1$@ • %2$@" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -48071,6 +49705,12 @@ "value" : "%1$@ • %2$@" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ • %2$@" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -48250,6 +49890,12 @@ "value" : "#canales de ubicación" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "#کانال‌های موقعیت" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -48429,6 +50075,12 @@ "value" : "oculta tu IP para los canales de ubicación. Recomendado: activado." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "IP شما را برای کانال‌های موقعیت پنهان می‌کند. توصیه: روشن." + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -48608,6 +50260,12 @@ "value" : "enrutamiento Tor" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "مسیریابی Tor" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -48787,6 +50445,12 @@ "value" : "bloque" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "بلوک" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -48966,6 +50630,12 @@ "value" : "edificio" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "ساختمان" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -49145,6 +50815,12 @@ "value" : "ciudad" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "شهر" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -49324,6 +51000,12 @@ "value" : "barrio" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "محله" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -49503,6 +51185,12 @@ "value" : "provincia" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "استان" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -49682,6 +51370,12 @@ "value" : "región" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "منطقه" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -49861,6 +51555,12 @@ "value" : "descartar" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "بستن" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -50040,6 +51740,12 @@ "value" : "reintentar" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "تلاش دوباره" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -50220,6 +51926,12 @@ "value" : "conectando a los relays…" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "در حال اتصال به رله‌ها…" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -50399,6 +52111,12 @@ "value" : "añade notas permanentes cortas sobre este lugar para que otras personas las encuentren." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "یادداشت‌های کوتاه و ماندگار به این موقعیت اضافه کنید تا بازدیدکنندگان دیگر پیدا کنند." + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -50578,6 +52296,12 @@ "value" : "no se pudo enviar la nota. %@" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "ارسال یادداشت ناموفق بود. %@" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -50757,6 +52481,12 @@ "value" : "no hay relays geográficos disponibles cerca de este lugar. Inténtalo de nuevo pronto." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "هیچ رلهٔ جغرافیایی نزدیک این موقعیت در دسترس نیست. کمی بعد دوباره امتحان کنید." + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -50936,6 +52666,12 @@ "value" : "cargando notas…" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "در حال بارگذاری یادداشت‌ها…" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -51115,6 +52851,12 @@ "value" : "no hay relays geográficos cercanos" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "هیچ رلهٔ جغرافیایی در نزدیکی نیست" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -51294,6 +53036,12 @@ "value" : "las notas dependen de los relays geográficos. Comprueba la conexión e inténtalo de nuevo." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "یادداشت‌ها به رله‌های جغرافیایی متکی‌اند. اتصال را بررسی کنید و دوباره امتحان کنید." + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -51474,6 +53222,12 @@ "value" : "cancelar envío" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "لغو ارسال" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -51654,6 +53408,12 @@ "value" : "imagen oculta" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "تصویر پنهان" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -51834,6 +53594,12 @@ "value" : "abre la imagen a pantalla completa" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "تصویر را تمام‌صفحه باز می‌کند" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -52014,6 +53780,12 @@ "value" : "revela la imagen" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "تصویر را نمایان می‌کند" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -52194,6 +53966,12 @@ "value" : "imagen" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "تصویر" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -52374,6 +54152,12 @@ "value" : "enviando imagen" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "در حال ارسال تصویر" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -52554,6 +54338,12 @@ "value" : "imagen no disponible" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "تصویر در دسترس نیست" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -52734,6 +54524,12 @@ "value" : "eliminar imagen" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "حذف تصویر" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -52914,6 +54710,12 @@ "value" : "ocultar imagen" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پنهان کردن تصویر" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -53094,6 +54896,12 @@ "value" : "abrir imagen" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "باز کردن تصویر" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -53274,6 +55082,12 @@ "value" : "revelar imagen" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "نمایش تصویر" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -53454,6 +55268,12 @@ "value" : "esto no se puede deshacer — puede que el remitente no esté a tu alcance para enviarla de nuevo." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "این کار قابل بازگشت نیست — شاید فرستنده در دسترس نباشد تا دوباره آن را بفرستد." + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -53634,6 +55454,12 @@ "value" : "¿eliminar esta imagen?" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "این تصویر حذف شود؟" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -53814,6 +55640,12 @@ "value" : "toca para revelar" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "برای نمایش لمس کنید" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -53993,6 +55825,12 @@ "value" : "mensaje de voz en vivo entrante" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پیام صوتی زنده در حال دریافت" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -54173,6 +56011,12 @@ "value" : "pausar nota de voz" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "توقف پخش پیام صوتی" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -54353,6 +56197,12 @@ "value" : "reproducir nota de voz" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پخش پیام صوتی" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -54532,6 +56382,12 @@ "value" : "EN VIVO" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "زنده" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -54712,6 +56568,12 @@ "value" : "abre un chat privado" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "گفتگوی خصوصی را باز می‌کند" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -54892,6 +56754,12 @@ "value" : "mostrar huella" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "نمایش اثرانگشت" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -55072,6 +56940,12 @@ "value" : "bloqueado" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "مسدود" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -55252,6 +57126,12 @@ "value" : "favorito" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "موردعلاقه" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -55432,6 +57312,12 @@ "value" : "sin conexión" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "آفلاین" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -55612,6 +57498,12 @@ "value" : "mensajes nuevos" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پیام‌های جدید" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -55792,6 +57684,12 @@ "value" : "avalado" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "ضمانت‌شده" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -55971,6 +57869,12 @@ "value" : "nuevos mensajes" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پیام‌های جدید" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -56151,6 +58055,12 @@ "value" : "avalado por alguien que verificaste" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "توسط کسی که تأیید کرده‌اید ضمانت شده" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -56331,6 +58241,12 @@ "value" : "Cerrar avisos" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "بستن اطلاعیه‌ها" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -56511,6 +58427,12 @@ "value" : "Ámbito de los avisos" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "محدودهٔ اطلاعیه‌ها" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -56691,6 +58613,12 @@ "value" : "📌 %lld avisos urgentes nuevos — toca el pin para verlos" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "📌 %lld اطلاعیهٔ فوری جدید — برای مشاهده روی سنجاق بزنید" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -56871,6 +58799,12 @@ "value" : "📌 aviso urgente de @%@: %@" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "📌 اطلاعیهٔ فوری از @%@: %@" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -57051,6 +58985,12 @@ "value" : "fija avisos cortos para la gente cercana. saltan de teléfono a teléfono, incluso sin conexión, y desaparecen solos después de unos días." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "اطلاعیه‌های کوتاه برای اطرافیان‌تان سنجاق کنید. گوشی به گوشی جابه‌جا می‌شوند، حتی آفلاین، و بعد از چند روز خودبه‌خود ناپدید می‌شوند." + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -57231,6 +59171,12 @@ "value" : "permanente" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "دائمی" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -57411,6 +59357,12 @@ "value" : "se desvanece %@" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ محو می‌شود" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -57591,6 +59543,12 @@ "value" : "mesh" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "مش" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -57771,6 +59729,12 @@ "value" : "red" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "نت" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -57951,6 +59915,12 @@ "value" : "geo" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "ژئو" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -58131,6 +60101,12 @@ "value" : "mesh" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "مش" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -58311,6 +60287,12 @@ "value" : "avisos" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "اطلاعیه‌ها" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -58490,6 +60472,12 @@ "value" : "grabando %@" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "در حال ضبط %@" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -58669,6 +60657,12 @@ "value" : "guardar" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "ذخیره" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -58848,6 +60842,12 @@ "value" : "no se puede iniciar un chat con %@: esta persona está bloqueada." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "شروع گفتگو با %@ ممکن نیست: این فرد مسدود است." + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -59027,6 +61027,12 @@ "value" : "no se puede enviar el mensaje: esta persona está bloqueada." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "ارسال پیام ممکن نیست: این فرد مسدود است." + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -59206,6 +61212,12 @@ "value" : "no se puede enviar un mensaje a %@: esta persona está bloqueada." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "ارسال پیام به %@ ممکن نیست: این فرد مسدود است." + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -59386,6 +61398,12 @@ "value" : "enviado por la puerta de enlace del mesh" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "از طریق دروازهٔ مش ارسال شد" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -59565,6 +61583,12 @@ "value" : "se bloqueó a %@ en los chats geohash" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ در گفتگوهای ژئوهش مسدود شد" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -59744,6 +61768,12 @@ "value" : "se desbloqueó a %@ en los chats geohash" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "رفع مسدودی %@ در گفتگوهای ژئوهش" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -59923,6 +61953,12 @@ "value" : "%@ ya es miembro" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ از قبل عضو است" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -60102,6 +62138,12 @@ "value" : "no se puede eliminar al creador" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "سازندهٔ گروه را نمی‌توان حذف کرد" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -60281,6 +62323,12 @@ "value" : "no se pudo crear el grupo" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "ساخت گروه ممکن نشد" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -60460,6 +62508,12 @@ "value" : "grupo '%@' creado — usa /group invite @name para añadir personas" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "گروه «%@» ساخته شد — با ‎/group invite @name افراد را اضافه کنید" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -60639,6 +62693,12 @@ "value" : "solo el creador del grupo puede hacer eso" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "فقط سازندهٔ گروه می‌تواند این کار را انجام دهد" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -60818,6 +62878,12 @@ "value" : "el grupo está lleno (máx. %@ miembros)" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "گروه پر است (حداکثر %@ عضو)" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -60997,6 +63063,12 @@ "value" : "tus claves de identidad aún no están listas" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "کلیدهای هویت شما هنوز آماده نیستند" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -61176,6 +63248,12 @@ "value" : "no se pudo generar la invitación al grupo" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "ساخت دعوت‌نامهٔ گروه ممکن نشد" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -61355,6 +63433,12 @@ "value" : "invitaste a %1$@ a '%2$@'" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ به «%2$@» دعوت شد" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -61534,6 +63618,12 @@ "value" : "%2$@ te añadió al grupo '%1$@' — ahora aparece en tu lista de personas" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "توسط %2$@ به گروه «%1$@» اضافه شدید — حالا در فهرست افراد شما دیده می‌شود" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -61713,6 +63803,12 @@ "value" : "saliste del grupo '%@'" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "از گروه «%@» خارج شدید" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -61892,6 +63988,12 @@ "value" : "tus grupos:" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "گروه‌های شما:" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -62071,6 +64173,12 @@ "value" : "'%@' no es miembro de este grupo" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "«%@» عضو این گروه نیست" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -62250,6 +64358,12 @@ "value" : "los nombres de grupo están limitados a 40 caracteres" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "نام گروه حداکثر ۴۰ نویسه است" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -62429,6 +64543,12 @@ "value" : "no estás en ningún grupo — /group create para crear uno" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "در هیچ گروهی نیستید — با ‎/group create یکی بسازید" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -62608,6 +64728,12 @@ "value" : "abre primero un chat de grupo" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "ابتدا یک گفتگوی گروهی باز کنید" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -62787,6 +64913,12 @@ "value" : "aún no se puede verificar la identidad de %@ — espera su anuncio" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "هویت %@ هنوز قابل تأیید نیست — منتظر اعلام او بمانید" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -62966,6 +65098,12 @@ "value" : "%@ debe estar conectado por mesh para ser invitado" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ باید از طریق مش متصل باشد تا دعوت شود" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -63145,6 +65283,12 @@ "value" : "'%@' no encontrado" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "«%@» پیدا نشد" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -63324,6 +65468,12 @@ "value" : "fuiste eliminado del grupo '%@'" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "از گروه «%@» حذف شدید" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -63503,6 +65653,12 @@ "value" : "se eliminó a %@ y se rotó la clave del grupo" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ حذف شد و کلید گروه تغییر کرد" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -63682,6 +65838,12 @@ "value" : "no se pudo rotar la clave del grupo" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "تغییر کلید گروه ممکن نشد" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -63861,6 +66023,12 @@ "value" : "no se pudo cifrar el mensaje" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "رمزنگاری پیام ممکن نشد" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -64040,6 +66208,12 @@ "value" : "ya no estás en este grupo" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "دیگر در این گروه نیستید" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -64219,6 +66393,12 @@ "value" : "uso: /group create " } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "استفاده: ‎/group create " + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -64398,6 +66578,12 @@ "value" : "uso: /group invite @name" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "استفاده: ‎/group invite @name" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -64577,6 +66763,12 @@ "value" : "uso: /group remove @name" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "استفاده: ‎/group remove @name" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -64756,6 +66948,12 @@ "value" : "no se puede enviar: no estás en un canal de ubicación" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "ارسال ممکن نیست: در کانال موقعیت نیستید" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -64935,6 +67133,12 @@ "value" : "no se pudo enviar al canal de ubicación" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "ارسال به کانال موقعیت ناموفق بود" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -65115,6 +67319,12 @@ "value" : "no se puede bloquear a %@: no encontrado o no se pudo verificar la identidad" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "مسدود کردن %@ ممکن نیست: پیدا نشد یا هویتش قابل تأیید نیست" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -65295,6 +67505,12 @@ "value" : "se bloqueó a %@. ya no recibirás mensajes suyos" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ مسدود شد. دیگر پیامی از او دریافت نخواهید کرد" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -65475,6 +67691,12 @@ "value" : "no se puede desbloquear a %@: no encontrado" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "رفع مسدودی %@ ممکن نیست: پیدا نشد" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -65655,6 +67877,12 @@ "value" : "se desbloqueó a %@" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "رفع مسدودی %@" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -65834,6 +68062,12 @@ "value" : "compilación de desarrollo: bypass de Tor activado." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "نسخهٔ توسعه: دور زدن Tor فعال است." + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -66013,6 +68247,12 @@ "value" : "tor se reinició. Se restauró el enrutamiento de la red." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tor دوباره راه‌اندازی شد. مسیریابی شبکه برقرار شد." + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -66192,6 +68432,12 @@ "value" : "tor se está reiniciando para recuperar la conectividad..." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tor برای بازیابی اتصال در حال راه‌اندازی مجدد است..." + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -66371,6 +68617,12 @@ "value" : "tor se inició. Todo el chat se enruta por Tor para privacidad." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tor راه‌اندازی شد. همهٔ گفتگوها برای حفظ حریم IP از طریق Tor مسیریابی می‌شوند." + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -66550,6 +68802,12 @@ "value" : "iniciando Tor..." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "در حال راه‌اندازی Tor..." + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -66730,6 +68988,12 @@ "value" : "estimado a partir de listas de vecinos difundidas (hasta 10 por peer) — tu dispositivo está resaltado" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "برآورد از فهرست همسایه‌های منتشرشده (تا ۱۰ مورد برای هر همتا) — دستگاه شما پررنگ شده است" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -66910,6 +69174,12 @@ "value" : "aún no hay enlaces del mesh — el mapa se completa a medida que llegan los anuncios de peers" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "هنوز پیوند مشی وجود ندارد — نقشه با رسیدن اعلام همتاها پر می‌شود" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -67090,6 +69360,12 @@ "value" : "actualizar topología" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "تازه‌سازی توپولوژی" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -67270,6 +69546,12 @@ "value" : "%1$ld peers · %2$ld enlaces" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$ld همتا · %2$ld پیوند" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -67450,6 +69732,12 @@ "value" : "topología del mesh" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "توپولوژی مش" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -67629,6 +69917,12 @@ "value" : "código QR de verificación" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "کد QR تأیید" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -67808,6 +70102,12 @@ "value" : "escanea para verificarme" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "برای تأیید من اسکن کنید" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -67987,6 +70287,12 @@ "value" : "QR no disponible" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "QR در دسترس نیست" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -68166,6 +70472,12 @@ "value" : "pega el contenido del QR para validarlo:" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "محتوای QR را برای اعتبارسنجی جای‌گذاری کنید:" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -68345,6 +70657,12 @@ "value" : "escanea el QR de un amigo" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "QR دوست‌تان را اسکن کنید" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -68524,6 +70842,12 @@ "value" : "QR inválido o caducado" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "محتوای QR نامعتبر یا منقضی است" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -68703,6 +71027,12 @@ "value" : "no se encontró un peer coincidente" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "همتای مطابق پیدا نشد" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -68882,6 +71212,12 @@ "value" : "se solicitó la verificación de %@" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "درخواست تأیید برای %@ ارسال شد" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -69061,6 +71397,12 @@ "value" : "validar" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "اعتبارسنجی" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -69240,6 +71582,12 @@ "value" : "VERIFICAR" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "تأیید" + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -69419,6 +71767,12 @@ "value" : "Las notas de voz solo están disponibles en los chats de mesh." } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پیام صوتی فقط در گفتگوهای مش در دسترس است." + } + }, "fil" : { "stringUnit" : { "state" : "translated", @@ -69564,6 +71918,750 @@ } } } + }, + "app_info.settings.language.title" : { + "comment" : "Section header (uppercase) for the app language picker in settings", + "extractionState" : "manual", + "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "اللغة" + } + }, + "bn" : { + "stringUnit" : { + "state" : "translated", + "value" : "ভাষা" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "SPRACHE" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "LANGUAGE" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "IDIOMA" + } + }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "زبان" + } + }, + "fil" : { + "stringUnit" : { + "state" : "translated", + "value" : "WIKA" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "LANGUE" + } + }, + "he" : { + "stringUnit" : { + "state" : "translated", + "value" : "שפה" + } + }, + "hi" : { + "stringUnit" : { + "state" : "translated", + "value" : "भाषा" + } + }, + "id" : { + "stringUnit" : { + "state" : "translated", + "value" : "BAHASA" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "LINGUA" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "言語" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "언어" + } + }, + "ms" : { + "stringUnit" : { + "state" : "translated", + "value" : "BAHASA" + } + }, + "ne" : { + "stringUnit" : { + "state" : "translated", + "value" : "भाषा" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "TAAL" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "JĘZYK" + } + }, + "pt" : { + "stringUnit" : { + "state" : "translated", + "value" : "IDIOMA" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "IDIOMA" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "ЯЗЫК" + } + }, + "sv" : { + "stringUnit" : { + "state" : "translated", + "value" : "SPRÅK" + } + }, + "ta" : { + "stringUnit" : { + "state" : "translated", + "value" : "மொழி" + } + }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ภาษา" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "DİL" + } + }, + "uk" : { + "stringUnit" : { + "state" : "translated", + "value" : "МОВА" + } + }, + "ur" : { + "stringUnit" : { + "state" : "translated", + "value" : "زبان" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "NGÔN NGỮ" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "语言" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "語言" + } + } + } + }, + "app_info.settings.language.picker_label" : { + "comment" : "Label of the app language picker row in settings", + "extractionState" : "manual", + "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "لغة التطبيق" + } + }, + "bn" : { + "stringUnit" : { + "state" : "translated", + "value" : "অ্যাপের ভাষা" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "App-Sprache" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "app language" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "idioma de la app" + } + }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "زبان برنامه" + } + }, + "fil" : { + "stringUnit" : { + "state" : "translated", + "value" : "wika ng app" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "langue de l'app" + } + }, + "he" : { + "stringUnit" : { + "state" : "translated", + "value" : "שפת האפליקציה" + } + }, + "hi" : { + "stringUnit" : { + "state" : "translated", + "value" : "ऐप की भाषा" + } + }, + "id" : { + "stringUnit" : { + "state" : "translated", + "value" : "bahasa aplikasi" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "lingua dell'app" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "アプリの言語" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "앱 언어" + } + }, + "ms" : { + "stringUnit" : { + "state" : "translated", + "value" : "bahasa aplikasi" + } + }, + "ne" : { + "stringUnit" : { + "state" : "translated", + "value" : "एपको भाषा" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "app-taal" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "język aplikacji" + } + }, + "pt" : { + "stringUnit" : { + "state" : "translated", + "value" : "idioma da app" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "idioma do app" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "язык приложения" + } + }, + "sv" : { + "stringUnit" : { + "state" : "translated", + "value" : "appspråk" + } + }, + "ta" : { + "stringUnit" : { + "state" : "translated", + "value" : "செயலியின் மொழி" + } + }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ภาษาของแอป" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "uygulama dili" + } + }, + "uk" : { + "stringUnit" : { + "state" : "translated", + "value" : "мова застосунку" + } + }, + "ur" : { + "stringUnit" : { + "state" : "translated", + "value" : "ایپ کی زبان" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "ngôn ngữ ứng dụng" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "应用语言" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "應用程式語言" + } + } + } + }, + "app_info.settings.language.system" : { + "comment" : "Menu option that clears the in-app language override so the app follows the device language", + "extractionState" : "manual", + "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "لغة النظام" + } + }, + "bn" : { + "stringUnit" : { + "state" : "translated", + "value" : "সিস্টেম ডিফল্ট" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Systemstandard" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "system default" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "predeterminado del sistema" + } + }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پیش‌فرض سیستم" + } + }, + "fil" : { + "stringUnit" : { + "state" : "translated", + "value" : "default ng system" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "réglage système" + } + }, + "he" : { + "stringUnit" : { + "state" : "translated", + "value" : "ברירת המחדל של המערכת" + } + }, + "hi" : { + "stringUnit" : { + "state" : "translated", + "value" : "सिस्टम डिफ़ॉल्ट" + } + }, + "id" : { + "stringUnit" : { + "state" : "translated", + "value" : "bawaan sistem" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "predefinita di sistema" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "システムのデフォルト" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "시스템 기본값" + } + }, + "ms" : { + "stringUnit" : { + "state" : "translated", + "value" : "lalai sistem" + } + }, + "ne" : { + "stringUnit" : { + "state" : "translated", + "value" : "प्रणाली पूर्वनिर्धारित" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "systeemstandaard" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "domyślny systemowy" + } + }, + "pt" : { + "stringUnit" : { + "state" : "translated", + "value" : "predefinição do sistema" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "padrão do sistema" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "системный по умолчанию" + } + }, + "sv" : { + "stringUnit" : { + "state" : "translated", + "value" : "systemstandard" + } + }, + "ta" : { + "stringUnit" : { + "state" : "translated", + "value" : "கணினி இயல்புநிலை" + } + }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ค่าเริ่มต้นของระบบ" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "sistem varsayılanı" + } + }, + "uk" : { + "stringUnit" : { + "state" : "translated", + "value" : "системна за замовчуванням" + } + }, + "ur" : { + "stringUnit" : { + "state" : "translated", + "value" : "سسٹم ڈیفالٹ" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "mặc định hệ thống" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "系统默认" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "系統預設" + } + } + } + }, + "app_info.settings.language.restart_note" : { + "comment" : "Caption shown after the user picks a different app language; the change takes effect on next launch", + "extractionState" : "manual", + "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "أعد تشغيل bitchat لتطبيق اللغة الجديدة" + } + }, + "bn" : { + "stringUnit" : { + "state" : "translated", + "value" : "নতুন ভাষা প্রয়োগ করতে bitchat পুনরায় চালু করুন" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "bitchat neu starten, um die neue Sprache zu übernehmen" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "restart bitchat to apply the new language" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "reinicia bitchat para aplicar el nuevo idioma" + } + }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "برای اعمال زبان جدید، bitchat را دوباره باز کنید" + } + }, + "fil" : { + "stringUnit" : { + "state" : "translated", + "value" : "i-restart ang bitchat para mailapat ang bagong wika" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "redémarrez bitchat pour appliquer la nouvelle langue" + } + }, + "he" : { + "stringUnit" : { + "state" : "translated", + "value" : "יש להפעיל מחדש את bitchat כדי להחיל את השפה החדשה" + } + }, + "hi" : { + "stringUnit" : { + "state" : "translated", + "value" : "नई भाषा लागू करने के लिए bitchat पुनः आरंभ करें" + } + }, + "id" : { + "stringUnit" : { + "state" : "translated", + "value" : "mulai ulang bitchat untuk menerapkan bahasa baru" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "riavvia bitchat per applicare la nuova lingua" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "新しい言語を適用するには bitchat を再起動してください" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "새 언어를 적용하려면 bitchat을 다시 시작하세요" + } + }, + "ms" : { + "stringUnit" : { + "state" : "translated", + "value" : "mulakan semula bitchat untuk menggunakan bahasa baharu" + } + }, + "ne" : { + "stringUnit" : { + "state" : "translated", + "value" : "नयाँ भाषा लागू गर्न bitchat पुनः सुरु गर्नुहोस्" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "herstart bitchat om de nieuwe taal toe te passen" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "uruchom bitchat ponownie, aby zastosować nowy język" + } + }, + "pt" : { + "stringUnit" : { + "state" : "translated", + "value" : "reinicie o bitchat para aplicar o novo idioma" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "reinicie o bitchat para aplicar o novo idioma" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "перезапустите bitchat, чтобы применить новый язык" + } + }, + "sv" : { + "stringUnit" : { + "state" : "translated", + "value" : "starta om bitchat för att använda det nya språket" + } + }, + "ta" : { + "stringUnit" : { + "state" : "translated", + "value" : "புதிய மொழியைப் பயன்படுத்த bitchat-ஐ மீண்டும் தொடங்கவும்" + } + }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "รีสตาร์ท bitchat เพื่อใช้ภาษาใหม่" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "yeni dili uygulamak için bitchat'i yeniden başlatın" + } + }, + "uk" : { + "stringUnit" : { + "state" : "translated", + "value" : "перезапустіть bitchat, щоб застосувати нову мову" + } + }, + "ur" : { + "stringUnit" : { + "state" : "translated", + "value" : "نئی زبان لاگو کرنے کے لیے bitchat دوبارہ شروع کریں" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "khởi động lại bitchat để áp dụng ngôn ngữ mới" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "重启 bitchat 以应用新语言" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "重新啟動 bitchat 以套用新語言" + } + } + } } }, "version" : "1.1" diff --git a/bitchat/Utils/AppLanguageSettings.swift b/bitchat/Utils/AppLanguageSettings.swift new file mode 100644 index 00000000..0bde5377 --- /dev/null +++ b/bitchat/Utils/AppLanguageSettings.swift @@ -0,0 +1,40 @@ +import Foundation + +/// In-app override for the UI language, on top of the system per-app +/// language. Apple resolves localization from the AppleLanguages default at +/// process start, so a new choice takes effect on the next launch — callers +/// surface a "restart to apply" note after changing it. +enum AppLanguageSettings { + /// "" means no override: follow the device (or per-app system) language. + static let overrideKey = "app.languageOverride" + private static let appleLanguagesKey = "AppleLanguages" + + /// Language codes the app ships translations for, straight from the + /// built bundle so this never drifts from the string catalog. + static var availableLanguages: [String] { + Bundle.main.localizations + .filter { $0 != "Base" } + .sorted { endonym(for: $0).localizedCaseInsensitiveCompare(endonym(for: $1)) == .orderedAscending } + } + + /// The language's name in that language ("فارسی", "한국어") so every user + /// can find their own entry regardless of the current UI language. + static func endonym(for code: String) -> String { + let locale = Locale(identifier: code) + let name = locale.localizedString(forIdentifier: code) ?? code + return name.lowercased(with: locale) + } + + /// Persists the override (nil clears it). AppleLanguages drives the + /// actual localization lookup on next launch. + static func setOverride(_ code: String?) { + let defaults = UserDefaults.standard + if let code, !code.isEmpty { + defaults.set(code, forKey: overrideKey) + defaults.set([code], forKey: appleLanguagesKey) + } else { + defaults.removeObject(forKey: overrideKey) + defaults.removeObject(forKey: appleLanguagesKey) + } + } +} diff --git a/bitchat/Views/AppInfoView.swift b/bitchat/Views/AppInfoView.swift index 646d6fde..d29c2888 100644 --- a/bitchat/Views/AppInfoView.swift +++ b/bitchat/Views/AppInfoView.swift @@ -26,6 +26,10 @@ struct AppInfoView: View { /// introduction), and afterwards the sheet reopens wherever it was left. @AppStorage("appInfo.selectedPane") private var selectedPane: Pane = .info @State private var showPanicConfirmation = false + @AppStorage(AppLanguageSettings.overrideKey) private var languageOverride = "" + /// The override changed this session; localization resolves at process + /// start, so surface the restart hint. + @State private var showLanguageRestartNote = false private enum Pane: String { case settings @@ -55,6 +59,11 @@ struct AppInfoView: View { static let connectivityTitle = String(localized: "app_info.settings.connectivity.title", defaultValue: "CONNECTIVITY", comment: "Section header (uppercase) for the connectivity toggles: mesh bridge, internet gateway, tor routing") + static let languageTitle = String(localized: "app_info.settings.language.title", defaultValue: "LANGUAGE", comment: "Section header (uppercase) for the app language picker in settings") + static let languagePickerLabel = String(localized: "app_info.settings.language.picker_label", defaultValue: "app language", comment: "Label of the app language picker row in settings") + static let languageSystem = String(localized: "app_info.settings.language.system", defaultValue: "system default", comment: "Menu option that clears the in-app language override so the app follows the device language") + static let languageRestartNote = String(localized: "app_info.settings.language.restart_note", defaultValue: "restart bitchat to apply the new language", comment: "Caption shown after the user picks a different app language; the change takes effect on next launch") + static let bridgeTitle = String(localized: "app_info.settings.bridge.title", defaultValue: "mesh bridge", comment: "Title of the mesh bridge toggle in settings") static let bridgeSubtitle = String(localized: "app_info.settings.bridge.subtitle", defaultValue: "joins nearby mesh islands over the internet: what you say in the mesh channel also reaches people in your area beyond radio range, and their messages appear here marked with the network glyph. while you have internet, your device also carries bridge and location-channel traffic for phones around you that have none.", comment: "Subtitle explaining what the mesh bridge toggle does") static func bridgeCell(_ cell: String) -> String { @@ -313,6 +322,52 @@ struct AppInfoView: View { } } + // Language — an in-app override so the UI language can differ + // from the device language (takes effect on next launch). + VStack(alignment: .leading, spacing: 12) { + SectionHeader(verbatim: Strings.Settings.languageTitle) + + settingsCard { + Menu { + Button { + selectLanguage(nil) + } label: { + menuItemLabel(Strings.Settings.languageSystem, isSelected: languageOverride.isEmpty) + } + Divider() + ForEach(AppLanguageSettings.availableLanguages, id: \.self) { code in + Button { + selectLanguage(code) + } label: { + menuItemLabel(AppLanguageSettings.endonym(for: code), isSelected: languageOverride == code) + } + } + } label: { + HStack { + Text(Strings.Settings.languagePickerLabel) + .bitchatFont(size: 12, weight: .semibold) + .foregroundColor(textColor) + Spacer() + Text(languageOverride.isEmpty ? Strings.Settings.languageSystem : AppLanguageSettings.endonym(for: languageOverride)) + .bitchatFont(size: 12) + .foregroundColor(palette.accent) + Image(systemName: "chevron.up.chevron.down") + .font(.system(size: 10)) + .foregroundColor(secondaryTextColor) + } + .contentShape(Rectangle()) + } + .buttonStyle(.plain) + + if showLanguageRestartNote { + Text(Strings.Settings.languageRestartNote) + .bitchatFont(size: 11) + .foregroundColor(secondaryTextColor) + .fixedSize(horizontal: false, vertical: true) + } + } + } + // Voice — same card + IRC pill as every other toggle setting. VStack(alignment: .leading, spacing: 12) { SectionHeader(Strings.Voice.title) @@ -458,6 +513,24 @@ struct AppInfoView: View { .padding() } + private func selectLanguage(_ code: String?) { + let previous = languageOverride + AppLanguageSettings.setOverride(code) + languageOverride = code ?? "" + if languageOverride != previous { + showLanguageRestartNote = true + } + } + + private func menuItemLabel(_ title: String, isSelected: Bool) -> some View { + HStack { + Text(title) + if isSelected { + Image(systemName: "checkmark") + } + } + } + private var bridgeToggleBinding: Binding { Binding( get: { bridgeService.isEnabled }, diff --git a/bitchatShareExtension/Localization/Localizable.xcstrings b/bitchatShareExtension/Localization/Localizable.xcstrings index 6ffa096c..e3271ccb 100644 --- a/bitchatShareExtension/Localization/Localizable.xcstrings +++ b/bitchatShareExtension/Localization/Localizable.xcstrings @@ -38,6 +38,12 @@ "comment" : "Fallback title when saving a shared link" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "پیوند اشتراک‌گذاری‌شده" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -233,6 +239,12 @@ "comment" : "Shown when the share payload cannot be encoded" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "کدگذاری پیوند ناموفق بود" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -428,6 +440,12 @@ "comment" : "Shown when provided content cannot be shared" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "محتوای قابل اشتراک‌گذاری وجود ندارد" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -623,6 +641,12 @@ "comment" : "Shown when the share extension receives no content" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "چیزی برای اشتراک‌گذاری نیست" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -818,6 +842,12 @@ "comment" : "Confirmation after successfully sharing a link" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "✓ پیوند در bitchat به اشتراک گذاشته شد" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review", @@ -1013,6 +1043,12 @@ "comment" : "Confirmation after successfully sharing text" } }, + "fa" : { + "stringUnit" : { + "state" : "translated", + "value" : "✓ متن در bitchat به اشتراک گذاشته شد" + } + }, "fil" : { "stringUnit" : { "state" : "needs_review",