From f293cf7e9999ab4f39d7a6bb548f946b096b1d3d Mon Sep 17 00:00:00 2001 From: Doxa Maps Date: Tue, 29 Sep 2026 18:50:57 +0000 Subject: [PATCH] A map explains itself: an info button, a one-time pointer and an example popup MapInfo (library/components/info) answers "what can this map do for you?" with real output the map makes, pre-generated so it opens at once. The examples are an ordered list of kinds rather than a fixed set, because maps make different things: an image (a poster), pages (a packet that shows its first page and expands to every page), a deck (cards that expand from a stack to a grid) and a table (a real excerpt of the spreadsheet a map exports, with translatable headers). The pointer at the button goes for good once that map's popup has been opened and closed; a checkbox in the popup turns it off on every map. Both are kept in localStorage behind a guard, so private browsing cannot break the page. On a phone the popup takes the whole screen; Escape closes it and focus returns to the button. The pointer's motion stops under prefers-reduced-motion. Its own words are a new 'mapInfo' area in all eleven locales. Each map's lead, takeaway and note arrive as keys in that map's own area, resolved at render so a live language switch re-translates them; the UPG-100 map's two sentences are added to upgMap in all eleven locales. --- documentation/reference-library-index.md | 4 + library/components/info/MapInfo.vue | 346 +++++++++++++++++++++++ library/i18n/locales/ar/mapInfo.json | 20 ++ library/i18n/locales/ar/upgMap.json | 4 +- library/i18n/locales/de/mapInfo.json | 20 ++ library/i18n/locales/de/upgMap.json | 4 +- library/i18n/locales/en/mapInfo.json | 20 ++ library/i18n/locales/en/upgMap.json | 4 +- library/i18n/locales/es/mapInfo.json | 20 ++ library/i18n/locales/es/upgMap.json | 4 +- library/i18n/locales/fr/mapInfo.json | 20 ++ library/i18n/locales/fr/upgMap.json | 4 +- library/i18n/locales/hi/mapInfo.json | 20 ++ library/i18n/locales/hi/upgMap.json | 4 +- library/i18n/locales/it/mapInfo.json | 20 ++ library/i18n/locales/it/upgMap.json | 4 +- library/i18n/locales/pt/mapInfo.json | 20 ++ library/i18n/locales/pt/upgMap.json | 4 +- library/i18n/locales/ro/mapInfo.json | 20 ++ library/i18n/locales/ro/upgMap.json | 4 +- library/i18n/locales/ru/mapInfo.json | 20 ++ library/i18n/locales/ru/upgMap.json | 4 +- library/i18n/locales/zh/mapInfo.json | 20 ++ library/i18n/locales/zh/upgMap.json | 4 +- 24 files changed, 603 insertions(+), 11 deletions(-) create mode 100644 library/components/info/MapInfo.vue create mode 100644 library/i18n/locales/ar/mapInfo.json create mode 100644 library/i18n/locales/de/mapInfo.json create mode 100644 library/i18n/locales/en/mapInfo.json create mode 100644 library/i18n/locales/es/mapInfo.json create mode 100644 library/i18n/locales/fr/mapInfo.json create mode 100644 library/i18n/locales/hi/mapInfo.json create mode 100644 library/i18n/locales/it/mapInfo.json create mode 100644 library/i18n/locales/pt/mapInfo.json create mode 100644 library/i18n/locales/ro/mapInfo.json create mode 100644 library/i18n/locales/ru/mapInfo.json create mode 100644 library/i18n/locales/zh/mapInfo.json diff --git a/documentation/reference-library-index.md b/documentation/reference-library-index.md index ef15162cd..e120d23be 100644 --- a/documentation/reference-library-index.md +++ b/documentation/reference-library-index.md @@ -42,6 +42,8 @@ and a change here can break other maps. `import … from '@map/components/dashboards/DashboardFilterChips.vue'` - **PinHint** — PinHint.vue — the conversion coach-mark (bottom-center of any map). `import … from '@map/components/hints/PinHint.vue'` +- **MapInfo** — MapInfo.vue — a map's "what can this do for you?" button, one-time pointer and example popup. + `import … from '@map/components/info/MapInfo.vue'` - **ApproxPinNote** — ApproxPinNote.vue — the ONE wording every map with people-group pins uses (APPROXPIN, 2026-09-26). `import … from '@map/components/legends/ApproxPinNote.vue'` - **LegendCollapseCaret** — LegendCollapseCaret.vue — SHARED (@map/components/legends/LegendCollapseCaret.vue). @@ -141,6 +143,8 @@ and a change here can break other maps. `import … from '@map/composables/poster/usePosterLayout.js'` - **printInPlace** — printInPlace.js — SHARED (@map/composables/printInPlace.js). `import … from '@map/composables/printInPlace.js'` +- **retryFetch** — retryFetch.js — fetch(), with the same transient-blip retry the lazy components already get. + `import … from '@map/composables/retryFetch.js'` - **retryableAsyncComponent** — retryableAsyncComponent.js — SHARED (@map/composables/retryableAsyncComponent.js). `import … from '@map/composables/retryableAsyncComponent.js'` - **useAvatarGenerator** — Avatar Generator Composable diff --git a/library/components/info/MapInfo.vue b/library/components/info/MapInfo.vue new file mode 100644 index 000000000..5d3d429fb --- /dev/null +++ b/library/components/info/MapInfo.vue @@ -0,0 +1,346 @@ + + + diff --git a/library/i18n/locales/ar/mapInfo.json b/library/i18n/locales/ar/mapInfo.json new file mode 100644 index 000000000..f8ffa4ae9 --- /dev/null +++ b/library/i18n/locales/ar/mapInfo.json @@ -0,0 +1,20 @@ +{ + "open": "ماذا يمكن أن تقدّم لك هذه الخريطة؟", + "title": "ماذا يمكن أن تقدّم لك هذه الخريطة؟", + "pointer": "ماذا تفعل هذه الخريطة؟", + "close": "إغلاق", + "takeaway": "ما تحصل عليه:", + "poster": "ملصق", + "packet": "حزمة الصلاة", + "cards": "بطاقات الصلاة", + "spreadsheet": "جدول بيانات", + "example": "مثال", + "expandPages": "عرض كل الصفحات ({n})", + "collapsePages": "عرض الصفحة الأولى فقط", + "expandDeck": "عرض كل البطاقات ({n})", + "collapseDeck": "تجميع البطاقات", + "moreRows": "صفوف إضافية في جدول البيانات الكامل: {n}", + "openFull": "فتح بالحجم الكامل", + "unavailable": "تعذّر تحميل هذا المثال.", + "pointerOff": "لا تُشِر إلى هذا الزر مرة أخرى" +} diff --git a/library/i18n/locales/ar/upgMap.json b/library/i18n/locales/ar/upgMap.json index 0efae6b88..29491553e 100644 --- a/library/i18n/locales/ar/upgMap.json +++ b/library/i18n/locales/ar/upgMap.json @@ -3,5 +3,7 @@ "nothingSelected": "لم يُحدَّد شيء", "selectionCardsFailed": "فشل إنشاء بطاقات التحديد: {reason}", "selectionPosterNeedsZone": "الملصقات متاحة لكل منطقة في مفتاح الخريطة — استخدم «قائمة الصلاة» لتحديد على الخريطة", - "mapDataFailed": "تعذّر تحميل بيانات الخريطة" + "mapDataFailed": "تعذّر تحميل بيانات الخريطة", + "infoLead": "قائمة UPG-100 على خريطة واحدة: الشعوب غير المُبشَّرة، مجمّعة في مناطق يمكنك أن تتبنّاها بالصلاة.", + "infoTakeaway": "لكل منطقة: ملصق للحائط، وحزمة صلاة للتوزيع، ومجموعة من بطاقات الصلاة. المثال أدناه هو المنطقة التي تضم أكبر عدد من الناس في شعوب لا يعمل أحد بعد على غرس كنائس بينها." } diff --git a/library/i18n/locales/de/mapInfo.json b/library/i18n/locales/de/mapInfo.json new file mode 100644 index 000000000..b1902fcd7 --- /dev/null +++ b/library/i18n/locales/de/mapInfo.json @@ -0,0 +1,20 @@ +{ + "open": "Was kann diese Karte für Sie tun?", + "title": "Was kann diese Karte für Sie tun?", + "pointer": "Was kann diese Karte?", + "close": "Schließen", + "takeaway": "Was Sie mitnehmen:", + "poster": "Poster", + "packet": "Gebetsheft", + "cards": "Gebetskarten", + "spreadsheet": "Tabelle", + "example": "Beispiel", + "expandPages": "Alle Seiten anzeigen ({n})", + "collapsePages": "Nur die erste Seite anzeigen", + "expandDeck": "Alle Karten anzeigen ({n})", + "collapseDeck": "Karten stapeln", + "moreRows": "Weitere Zeilen in der vollständigen Tabelle: {n}", + "openFull": "In voller Größe öffnen", + "unavailable": "Dieses Beispiel konnte nicht geladen werden.", + "pointerOff": "Nicht mehr auf diese Schaltfläche hinweisen" +} diff --git a/library/i18n/locales/de/upgMap.json b/library/i18n/locales/de/upgMap.json index eae095f7e..eb688dc46 100644 --- a/library/i18n/locales/de/upgMap.json +++ b/library/i18n/locales/de/upgMap.json @@ -3,5 +3,7 @@ "nothingSelected": "Nichts ausgewählt", "selectionCardsFailed": "Karten der Auswahl fehlgeschlagen: {reason}", "selectionPosterNeedsZone": "Plakate gibt es pro Gebiet in der Legende – nutzen Sie Gebetsliste für eine Auswahl auf der Karte", - "mapDataFailed": "Die Kartendaten konnten nicht geladen werden" + "mapDataFailed": "Die Kartendaten konnten nicht geladen werden", + "infoLead": "Die UPG-100-Liste auf einer Karte: unerreichte Volksgruppen, zusammengefasst in Zonen, die Sie im Gebet übernehmen können.", + "infoTakeaway": "für jede Zone ein Wandposter, ein Gebetsheft zum Weitergeben und ein Satz Gebetskarten. Das Beispiel unten ist die Zone mit den meisten Menschen in Volksgruppen, unter denen noch niemand Gemeinden gründet." } diff --git a/library/i18n/locales/en/mapInfo.json b/library/i18n/locales/en/mapInfo.json new file mode 100644 index 000000000..38674ca03 --- /dev/null +++ b/library/i18n/locales/en/mapInfo.json @@ -0,0 +1,20 @@ +{ + "open": "What can this map do for you?", + "title": "What can this map do for you?", + "pointer": "What can this map do?", + "close": "Close", + "takeaway": "What you take away:", + "poster": "Poster", + "packet": "Prayer packet", + "cards": "Prayer cards", + "spreadsheet": "Spreadsheet", + "example": "Example", + "expandPages": "Show all pages ({n})", + "collapsePages": "Show the first page only", + "expandDeck": "Show all cards ({n})", + "collapseDeck": "Stack the cards", + "moreRows": "More rows in the full spreadsheet: {n}", + "openFull": "Open full size", + "unavailable": "This example could not be loaded.", + "pointerOff": "Don't point at this button again" +} diff --git a/library/i18n/locales/en/upgMap.json b/library/i18n/locales/en/upgMap.json index f8358ec68..4d3e51f9c 100644 --- a/library/i18n/locales/en/upgMap.json +++ b/library/i18n/locales/en/upgMap.json @@ -3,5 +3,7 @@ "nothingSelected": "Nothing is selected", "selectionCardsFailed": "Selection card deck failed: {reason}", "selectionPosterNeedsZone": "Posters exist per territory on the legend — use Prayer List for a map selection", - "mapDataFailed": "The map data could not be loaded" + "mapDataFailed": "The map data could not be loaded", + "infoLead": "The UPG-100 list on one map: unreached people groups, gathered into zones you can adopt in prayer.", + "infoTakeaway": "for any zone, a wall poster, a prayer packet to hand out and a deck of prayer cards. The example below is the zone with the most people in groups where no one is planting churches yet." } diff --git a/library/i18n/locales/es/mapInfo.json b/library/i18n/locales/es/mapInfo.json new file mode 100644 index 000000000..4764bd046 --- /dev/null +++ b/library/i18n/locales/es/mapInfo.json @@ -0,0 +1,20 @@ +{ + "open": "¿Qué puede hacer este mapa por usted?", + "title": "¿Qué puede hacer este mapa por usted?", + "pointer": "¿Qué hace este mapa?", + "close": "Cerrar", + "takeaway": "Lo que se lleva:", + "poster": "Póster", + "packet": "Paquete de oración", + "cards": "Tarjetas de oración", + "spreadsheet": "Hoja de cálculo", + "example": "Ejemplo", + "expandPages": "Ver todas las páginas ({n})", + "collapsePages": "Ver solo la primera página", + "expandDeck": "Ver todas las tarjetas ({n})", + "collapseDeck": "Apilar las tarjetas", + "moreRows": "Más filas en la hoja de cálculo completa: {n}", + "openFull": "Abrir a tamaño completo", + "unavailable": "No se pudo cargar este ejemplo.", + "pointerOff": "No volver a señalar este botón" +} diff --git a/library/i18n/locales/es/upgMap.json b/library/i18n/locales/es/upgMap.json index 9221715ac..7ac75a18f 100644 --- a/library/i18n/locales/es/upgMap.json +++ b/library/i18n/locales/es/upgMap.json @@ -3,5 +3,7 @@ "nothingSelected": "No hay nada seleccionado", "selectionCardsFailed": "Error al generar las tarjetas de la selección: {reason}", "selectionPosterNeedsZone": "Hay carteles por territorio en la leyenda; usa Lista de oración para una selección en el mapa", - "mapDataFailed": "No se pudieron cargar los datos del mapa" + "mapDataFailed": "No se pudieron cargar los datos del mapa", + "infoLead": "La lista UPG-100 en un solo mapa: pueblos no alcanzados, agrupados en zonas que usted puede adoptar en oración.", + "infoTakeaway": "para cada zona, un póster para la pared, un paquete de oración para repartir y un mazo de tarjetas de oración. El ejemplo de abajo es la zona con más personas en pueblos donde todavía nadie está plantando iglesias." } diff --git a/library/i18n/locales/fr/mapInfo.json b/library/i18n/locales/fr/mapInfo.json new file mode 100644 index 000000000..3977f7eeb --- /dev/null +++ b/library/i18n/locales/fr/mapInfo.json @@ -0,0 +1,20 @@ +{ + "open": "Que peut faire cette carte pour vous ?", + "title": "Que peut faire cette carte pour vous ?", + "pointer": "Que fait cette carte ?", + "close": "Fermer", + "takeaway": "Ce que vous emportez :", + "poster": "Affiche", + "packet": "Livret de prière", + "cards": "Cartes de prière", + "spreadsheet": "Tableur", + "example": "Exemple", + "expandPages": "Afficher toutes les pages ({n})", + "collapsePages": "N'afficher que la première page", + "expandDeck": "Afficher toutes les cartes ({n})", + "collapseDeck": "Empiler les cartes", + "moreRows": "Lignes supplémentaires dans le tableur complet : {n}", + "openFull": "Ouvrir en taille réelle", + "unavailable": "Impossible de charger cet exemple.", + "pointerOff": "Ne plus signaler ce bouton" +} diff --git a/library/i18n/locales/fr/upgMap.json b/library/i18n/locales/fr/upgMap.json index 85c20b72c..8761e45a6 100644 --- a/library/i18n/locales/fr/upgMap.json +++ b/library/i18n/locales/fr/upgMap.json @@ -3,5 +3,7 @@ "nothingSelected": "Rien n’est sélectionné", "selectionCardsFailed": "Échec des cartes de la sélection : {reason}", "selectionPosterNeedsZone": "Les affiches existent par territoire dans la légende — utilisez Liste de prière pour une sélection sur la carte", - "mapDataFailed": "Les données de la carte n’ont pas pu être chargées" + "mapDataFailed": "Les données de la carte n’ont pas pu être chargées", + "infoLead": "La liste UPG-100 sur une seule carte : les peuples non atteints, regroupés en zones que vous pouvez adopter dans la prière.", + "infoTakeaway": "pour chaque zone, une affiche murale, un livret de prière à distribuer et un jeu de cartes de prière. L'exemple ci-dessous est la zone qui compte le plus de personnes dans des peuples où personne n'implante encore d'Églises." } diff --git a/library/i18n/locales/hi/mapInfo.json b/library/i18n/locales/hi/mapInfo.json new file mode 100644 index 000000000..fef11974f --- /dev/null +++ b/library/i18n/locales/hi/mapInfo.json @@ -0,0 +1,20 @@ +{ + "open": "यह नक्शा आपके लिए क्या कर सकता है?", + "title": "यह नक्शा आपके लिए क्या कर सकता है?", + "pointer": "यह नक्शा क्या करता है?", + "close": "बंद करें", + "takeaway": "आपको क्या मिलता है:", + "poster": "पोस्टर", + "packet": "प्रार्थना पुस्तिका", + "cards": "प्रार्थना कार्ड", + "spreadsheet": "स्प्रेडशीट", + "example": "उदाहरण", + "expandPages": "सभी पृष्ठ दिखाएँ ({n})", + "collapsePages": "केवल पहला पृष्ठ दिखाएँ", + "expandDeck": "सभी कार्ड दिखाएँ ({n})", + "collapseDeck": "कार्ड एक साथ रखें", + "moreRows": "पूरी स्प्रेडशीट में और पंक्तियाँ: {n}", + "openFull": "पूरे आकार में खोलें", + "unavailable": "यह उदाहरण लोड नहीं हो सका।", + "pointerOff": "इस बटन की ओर फिर से इशारा न करें" +} diff --git a/library/i18n/locales/hi/upgMap.json b/library/i18n/locales/hi/upgMap.json index ef9ee39cd..3d1de9670 100644 --- a/library/i18n/locales/hi/upgMap.json +++ b/library/i18n/locales/hi/upgMap.json @@ -3,5 +3,7 @@ "nothingSelected": "कुछ भी चुना नहीं गया है", "selectionCardsFailed": "चयन के कार्ड विफल: {reason}", "selectionPosterNeedsZone": "पोस्टर लेजेंड में हर क्षेत्र के लिए हैं — मानचित्र पर चयन के लिए प्रार्थना सूची का उपयोग करें", - "mapDataFailed": "मानचित्र का डेटा लोड नहीं हो सका" + "mapDataFailed": "मानचित्र का डेटा लोड नहीं हो सका", + "infoLead": "UPG-100 सूची एक ही नक्शे पर: अपहुँचे जन-समूह, क्षेत्रों में बाँटे गए, जिन्हें आप प्रार्थना में अपना सकते हैं।", + "infoTakeaway": "हर क्षेत्र के लिए दीवार का एक पोस्टर, बाँटने के लिए एक प्रार्थना पुस्तिका और प्रार्थना कार्डों का एक सेट। नीचे का उदाहरण वह क्षेत्र है जहाँ ऐसे जन-समूहों में सबसे अधिक लोग हैं जिनके बीच अभी कोई कलीसिया स्थापित नहीं कर रहा है।" } diff --git a/library/i18n/locales/it/mapInfo.json b/library/i18n/locales/it/mapInfo.json new file mode 100644 index 000000000..6a045565a --- /dev/null +++ b/library/i18n/locales/it/mapInfo.json @@ -0,0 +1,20 @@ +{ + "open": "Che cosa può fare questa mappa per te?", + "title": "Che cosa può fare questa mappa per te?", + "pointer": "Che cosa fa questa mappa?", + "close": "Chiudi", + "takeaway": "Che cosa ottieni:", + "poster": "Poster", + "packet": "Libretto di preghiera", + "cards": "Carte di preghiera", + "spreadsheet": "Foglio di calcolo", + "example": "Esempio", + "expandPages": "Mostra tutte le pagine ({n})", + "collapsePages": "Mostra solo la prima pagina", + "expandDeck": "Mostra tutte le carte ({n})", + "collapseDeck": "Impila le carte", + "moreRows": "Altre righe nel foglio di calcolo completo: {n}", + "openFull": "Apri a grandezza intera", + "unavailable": "Impossibile caricare questo esempio.", + "pointerOff": "Non indicare più questo pulsante" +} diff --git a/library/i18n/locales/it/upgMap.json b/library/i18n/locales/it/upgMap.json index ebc420763..6fa7914ba 100644 --- a/library/i18n/locales/it/upgMap.json +++ b/library/i18n/locales/it/upgMap.json @@ -3,5 +3,7 @@ "nothingSelected": "Nessuna selezione", "selectionCardsFailed": "Carte della selezione non riuscite: {reason}", "selectionPosterNeedsZone": "I manifesti esistono per territorio nella legenda: usa Lista di preghiera per una selezione sulla mappa", - "mapDataFailed": "Impossibile caricare i dati della mappa" + "mapDataFailed": "Impossibile caricare i dati della mappa", + "infoLead": "La lista UPG-100 su un'unica mappa: popoli non raggiunti, raggruppati in zone che puoi adottare nella preghiera.", + "infoTakeaway": "per ogni zona, un poster da parete, un libretto di preghiera da distribuire e un mazzo di carte di preghiera. L'esempio qui sotto è la zona con più persone in popoli dove nessuno sta ancora fondando chiese." } diff --git a/library/i18n/locales/pt/mapInfo.json b/library/i18n/locales/pt/mapInfo.json new file mode 100644 index 000000000..4fec2e132 --- /dev/null +++ b/library/i18n/locales/pt/mapInfo.json @@ -0,0 +1,20 @@ +{ + "open": "O que este mapa pode fazer por você?", + "title": "O que este mapa pode fazer por você?", + "pointer": "O que este mapa faz?", + "close": "Fechar", + "takeaway": "O que você leva:", + "poster": "Pôster", + "packet": "Pacote de oração", + "cards": "Cartões de oração", + "spreadsheet": "Planilha", + "example": "Exemplo", + "expandPages": "Mostrar todas as páginas ({n})", + "collapsePages": "Mostrar só a primeira página", + "expandDeck": "Mostrar todos os cartões ({n})", + "collapseDeck": "Empilhar os cartões", + "moreRows": "Mais linhas na planilha completa: {n}", + "openFull": "Abrir em tamanho real", + "unavailable": "Não foi possível carregar este exemplo.", + "pointerOff": "Não apontar mais para este botão" +} diff --git a/library/i18n/locales/pt/upgMap.json b/library/i18n/locales/pt/upgMap.json index 0d234e918..bc1080a30 100644 --- a/library/i18n/locales/pt/upgMap.json +++ b/library/i18n/locales/pt/upgMap.json @@ -3,5 +3,7 @@ "nothingSelected": "Nada está selecionado", "selectionCardsFailed": "Falha ao gerar os cartões da seleção: {reason}", "selectionPosterNeedsZone": "Há cartazes por território na legenda — use Lista de oração para uma seleção no mapa", - "mapDataFailed": "Não foi possível carregar os dados do mapa" + "mapDataFailed": "Não foi possível carregar os dados do mapa", + "infoLead": "A lista UPG-100 em um só mapa: povos não alcançados, agrupados em zonas que você pode adotar em oração.", + "infoTakeaway": "para cada zona, um pôster de parede, um pacote de oração para distribuir e um baralho de cartões de oração. O exemplo abaixo é a zona com mais pessoas em povos onde ninguém ainda está plantando igrejas." } diff --git a/library/i18n/locales/ro/mapInfo.json b/library/i18n/locales/ro/mapInfo.json new file mode 100644 index 000000000..48226fa64 --- /dev/null +++ b/library/i18n/locales/ro/mapInfo.json @@ -0,0 +1,20 @@ +{ + "open": "Ce poate face această hartă pentru tine?", + "title": "Ce poate face această hartă pentru tine?", + "pointer": "Ce face această hartă?", + "close": "Închide", + "takeaway": "Ce primești:", + "poster": "Poster", + "packet": "Pachet de rugăciune", + "cards": "Cartonașe de rugăciune", + "spreadsheet": "Foaie de calcul", + "example": "Exemplu", + "expandPages": "Arată toate paginile ({n})", + "collapsePages": "Arată doar prima pagină", + "expandDeck": "Arată toate cartonașele ({n})", + "collapseDeck": "Strânge cartonașele", + "moreRows": "Rânduri suplimentare în foaia de calcul completă: {n}", + "openFull": "Deschide la dimensiune completă", + "unavailable": "Acest exemplu nu a putut fi încărcat.", + "pointerOff": "Nu mai indica acest buton" +} diff --git a/library/i18n/locales/ro/upgMap.json b/library/i18n/locales/ro/upgMap.json index 3799433fd..0fe9d25fe 100644 --- a/library/i18n/locales/ro/upgMap.json +++ b/library/i18n/locales/ro/upgMap.json @@ -3,5 +3,7 @@ "nothingSelected": "Nimic nu este selectat", "selectionCardsFailed": "Cărțile selecției au eșuat: {reason}", "selectionPosterNeedsZone": "Afișele există pe teritoriu în legendă — folosiți Listă de rugăciune pentru o selecție pe hartă", - "mapDataFailed": "Datele hărții nu au putut fi încărcate" + "mapDataFailed": "Datele hărții nu au putut fi încărcate", + "infoLead": "Lista UPG-100 pe o singură hartă: popoare neatinse, grupate în zone pe care le poți adopta în rugăciune.", + "infoTakeaway": "pentru fiecare zonă, un poster de perete, un pachet de rugăciune de împărțit și un set de cartonașe de rugăciune. Exemplul de mai jos este zona cu cei mai mulți oameni din popoare în care nimeni nu plantează încă biserici." } diff --git a/library/i18n/locales/ru/mapInfo.json b/library/i18n/locales/ru/mapInfo.json new file mode 100644 index 000000000..24b4436ed --- /dev/null +++ b/library/i18n/locales/ru/mapInfo.json @@ -0,0 +1,20 @@ +{ + "open": "Чем эта карта может быть вам полезна?", + "title": "Чем эта карта может быть вам полезна?", + "pointer": "Что умеет эта карта?", + "close": "Закрыть", + "takeaway": "Что вы получаете:", + "poster": "Плакат", + "packet": "Молитвенный буклет", + "cards": "Молитвенные карточки", + "spreadsheet": "Таблица", + "example": "Пример", + "expandPages": "Показать все страницы ({n})", + "collapsePages": "Показать только первую страницу", + "expandDeck": "Показать все карточки ({n})", + "collapseDeck": "Сложить карточки в стопку", + "moreRows": "Ещё строк в полной таблице: {n}", + "openFull": "Открыть в полном размере", + "unavailable": "Не удалось загрузить этот пример.", + "pointerOff": "Больше не указывать на эту кнопку" +} diff --git a/library/i18n/locales/ru/upgMap.json b/library/i18n/locales/ru/upgMap.json index 64345f224..d35e8da7e 100644 --- a/library/i18n/locales/ru/upgMap.json +++ b/library/i18n/locales/ru/upgMap.json @@ -3,5 +3,7 @@ "nothingSelected": "Ничего не выбрано", "selectionCardsFailed": "Не удалось создать карточки выбора: {reason}", "selectionPosterNeedsZone": "Плакаты есть для каждой территории в легенде — для выбора на карте используйте «Молитвенный список»", - "mapDataFailed": "Не удалось загрузить данные карты" + "mapDataFailed": "Не удалось загрузить данные карты", + "infoLead": "Список UPG-100 на одной карте: недостигнутые народы, объединённые в зоны, которые вы можете взять на молитвенное попечение.", + "infoTakeaway": "для каждой зоны — настенный плакат, молитвенный буклет для раздачи и набор молитвенных карточек. Ниже показана зона, где больше всего людей в народах, среди которых пока никто не основывает церкви." } diff --git a/library/i18n/locales/zh/mapInfo.json b/library/i18n/locales/zh/mapInfo.json new file mode 100644 index 000000000..228f83b32 --- /dev/null +++ b/library/i18n/locales/zh/mapInfo.json @@ -0,0 +1,20 @@ +{ + "open": "这张地图能为你做什么?", + "title": "这张地图能为你做什么?", + "pointer": "这张地图能做什么?", + "close": "关闭", + "takeaway": "你能带走的:", + "poster": "海报", + "packet": "祷告手册", + "cards": "祷告卡", + "spreadsheet": "电子表格", + "example": "示例", + "expandPages": "显示全部页面({n})", + "collapsePages": "只显示第一页", + "expandDeck": "显示全部卡片({n})", + "collapseDeck": "把卡片叠起来", + "moreRows": "完整电子表格中的更多行:{n}", + "openFull": "以完整尺寸打开", + "unavailable": "无法加载此示例。", + "pointerOff": "不再指向这个按钮" +} diff --git a/library/i18n/locales/zh/upgMap.json b/library/i18n/locales/zh/upgMap.json index 7688f1f53..4c2ffc3ca 100644 --- a/library/i18n/locales/zh/upgMap.json +++ b/library/i18n/locales/zh/upgMap.json @@ -3,5 +3,7 @@ "nothingSelected": "未选择任何内容", "selectionCardsFailed": "所选内容的卡片生成失败:{reason}", "selectionPosterNeedsZone": "海报按图例中的区域提供——地图上的选择请使用“祷告名单”", - "mapDataFailed": "无法加载地图数据" + "mapDataFailed": "无法加载地图数据", + "infoLead": "UPG-100 名单尽在一张地图上:未得之民按区域分组,你可以在祷告中认领一个区域。", + "infoTakeaway": "每个区域都有一张墙面海报、一本可分发的祷告手册和一套祷告卡。下面的示例是这样一个区域:在尚无人植堂的族群中,这里的人数最多。" }