From c0d573c005f86a4f3e63f93e1476e4e875d805d0 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Thu, 13 Aug 2020 06:12:58 +0200 Subject: [PATCH 01/25] Update translation files Updated by "Cleanup translation files" hook in Weblate. Translation: Crosswords/Android Translate-URL: https://hosted.weblate.org/projects/xwords/android/ --- xwords4/android/res_src/values-ar/strings.xml | 1 - xwords4/android/res_src/values-ca/strings.xml | 4 ---- xwords4/android/res_src/values-de/strings.xml | 4 ---- xwords4/android/res_src/values-fr/strings.xml | 5 ----- xwords4/android/res_src/values-ja/strings.xml | 4 ---- xwords4/android/res_src/values-nb-rNO/strings.xml | 4 ---- xwords4/android/res_src/values-nl/strings.xml | 3 --- xwords4/android/res_src/values-pl/strings.xml | 4 ---- xwords4/android/res_src/values-pt/strings.xml | 4 ---- xwords4/android/res_src/values-sk/strings.xml | 4 ---- 10 files changed, 37 deletions(-) diff --git a/xwords4/android/res_src/values-ar/strings.xml b/xwords4/android/res_src/values-ar/strings.xml index 58413c4a9..b26276292 100644 --- a/xwords4/android/res_src/values-ar/strings.xml +++ b/xwords4/android/res_src/values-ar/strings.xml @@ -57,7 +57,6 @@ لا تعرض مجدداً [فارغ] مجموعة جديدة - الأحرف الأولى تحديد الكل ترجمة فرز حسب: diff --git a/xwords4/android/res_src/values-ca/strings.xml b/xwords4/android/res_src/values-ca/strings.xml index c905bb359..328227d47 100644 --- a/xwords4/android/res_src/values-ca/strings.xml +++ b/xwords4/android/res_src/values-ca/strings.xml @@ -371,12 +371,8 @@ Introduïu el vostre nom aquí. S\'usarà en crear partides noves. (Podreu Aquest botó us permet cercar, en línia, les paraules acabades de jugar. Jugada Grup nou - Cerca - Primeres lletres Tria les fitxes cara amunt %1$s (%2$d paraules) - %1$s (%2$d paraules usant %3$d fitxes) - No hi ha cap paraula a %1$s que comenci amb %2$s. Aquest botó obre l\'explorador de diccionaris en el diccionari actual del jugador. Aquest botó obre l\'explorador de diccionaris en el diccionari de la vostra elecció. El diccionari %1$s conté només la informació de fitxes. No hi ha paraules a explorar. diff --git a/xwords4/android/res_src/values-de/strings.xml b/xwords4/android/res_src/values-de/strings.xml index a29bd3618..95d329133 100644 --- a/xwords4/android/res_src/values-de/strings.xml +++ b/xwords4/android/res_src/values-de/strings.xml @@ -369,14 +369,10 @@ \n \n(Die Gruppe „Archiv“ kann sicher gelöscht werden, sie wird bei Bedarf neu erzeugt.) Neue Gruppe - Suchen - Anfangsbuchstaben %1$d für mich auswählen Spielsteine aufgedeckt auswählen Deaktivierte Adresstypen %1$s (%2$d Wörter) - %1$s (%2$d Wörter mit %3$d Spielsteinen) - Kein Wort in %1$s beginnt mit %2$s. Dieser Button öffnet den Wortlisten-Browser mit der Wortliste des gegenwärtigen Spielers. Dieser Button öffnet den Wortlisten-Browser mit einer Wortliste Ihrer Wahl. Die Wortliste %1$s enthält nur Spielstein-Informationen, keine Wörter zum Browsen. diff --git a/xwords4/android/res_src/values-fr/strings.xml b/xwords4/android/res_src/values-fr/strings.xml index 24b3a2b1f..d6bfec00a 100644 --- a/xwords4/android/res_src/values-fr/strings.xml +++ b/xwords4/android/res_src/values-fr/strings.xml @@ -1858,10 +1858,8 @@ ligne, les mots qui viennent d\'être joués. Nouveau groupe - Trouver - Premières lettres @@ -1881,12 +1879,9 @@ ligne, les mots qui viennent d\'être joués. - %1$s (%2$d mots utilisant %3$d jetons) - Aucun mot de %1$s ne commence par -%2$s. diff --git a/xwords4/android/res_src/values-ja/strings.xml b/xwords4/android/res_src/values-ja/strings.xml index 10f8a88f7..4db568392 100644 --- a/xwords4/android/res_src/values-ja/strings.xml +++ b/xwords4/android/res_src/values-ja/strings.xml @@ -348,12 +348,8 @@ このボタンは、今プレイした単語をオンラインで検索できます。 移動 新しいグループ - 検索 - 最初の文字 タイル面を選択 %1$s (%2$d 単語) - %1$s (%2$d 単語 %3$d タイル使用) - %1$s に %2$s で開始する単語はありません。 このボタンは、現在のプレイヤーの単語リストで、単語リスト ブラウザーを開きます。 このボタンは、お好みの単語リストで、単語リスト ブラウザーを開きます。 単語リスト %1$s は、タイルの情報のみが含まれています。参照する単語はありません。 diff --git a/xwords4/android/res_src/values-nb-rNO/strings.xml b/xwords4/android/res_src/values-nb-rNO/strings.xml index 8e1debe3e..b201accee 100644 --- a/xwords4/android/res_src/values-nb-rNO/strings.xml +++ b/xwords4/android/res_src/values-nb-rNO/strings.xml @@ -218,13 +218,9 @@ Denne knappen lar deg slå opp ord som akkurat ble spilt på nett. Flytt Ny gruppe - Finn - Første bokstaver Plukk %1$d for meg Avskrudde adressetyper %1$s (%2$d ord) - %1$s (%2$d ord ved bruk av %3$d flis - Ingen ord i %1$s starter med %2$s. Denne knappen åpner ordlisteutforskeren i gjeldende spillers ordliste. Denne knappen åpner ordlisteutforskeren i ordlisten du ønsker. Ordlisten %1$s inneholder kun flisinformasjon. Det er ingen ord å utforske. diff --git a/xwords4/android/res_src/values-nl/strings.xml b/xwords4/android/res_src/values-nl/strings.xml index e42f5dd9b..682d75283 100644 --- a/xwords4/android/res_src/values-nl/strings.xml +++ b/xwords4/android/res_src/values-nl/strings.xml @@ -350,11 +350,8 @@ Met deze knop kun je de net gespeelde woorden online opzoeken. Zet Nieuwe groep - Vind - Eerste letters Pak letters met de letter naar boven %1$s (%2$d woorden) - Geen woord in %1$s begint met %2$s. Deze knop opent de woordenlijst browser voor de woordenlijst van de speler die aan de beurt is. Deze knop opent de woordenlijst browser voor de woordenlijst van jouw keuze. De woordenlijst %1$s heeft enkel letterinformatie. Er zitten geen woorden in. diff --git a/xwords4/android/res_src/values-pl/strings.xml b/xwords4/android/res_src/values-pl/strings.xml index 05fbcf7fa..7f86a4a67 100644 --- a/xwords4/android/res_src/values-pl/strings.xml +++ b/xwords4/android/res_src/values-pl/strings.xml @@ -145,8 +145,6 @@ Wpisz tutaj swoje imię. Będzie ono używane podczas tworzenia nowych gier. (Możesz zmienić go później w sekcji „Nowa gra domyślna” w Ustawieniach.) Ten przycisk pozwala przeglądać w Internecie słowa, które właśnie zostały odtworzone. Nowa grupa - Znajdź - Pierwsze litery Wyłączone typy adresów Minimalna długość Maksymalna długość @@ -460,8 +458,6 @@ Rusz się. Wybierz %1$d dla mnie "%1$s (%2$d słów)" - %1$s (%2$d wyrazy przy użyciu %3$d kafelków) - Żadne słowo w %1$s nie zaczyna się od %2$s. Ten przycisk otwiera przeglądarkę listy słów na liście słów bieżącego gracza. Ten przycisk otwiera przeglądarkę listy słów na wybranej przez Ciebie liście słów. Lista słów %1$s zawiera tylko informacje o kafelkach. Nie ma słów do przeglądania. diff --git a/xwords4/android/res_src/values-pt/strings.xml b/xwords4/android/res_src/values-pt/strings.xml index 61ff0979d..3deaebbcb 100644 --- a/xwords4/android/res_src/values-pt/strings.xml +++ b/xwords4/android/res_src/values-pt/strings.xml @@ -1446,9 +1446,7 @@ Jogar - Procurar - Primeiras letras @@ -1457,8 +1455,6 @@ - Nenhuma palavra em %1$s começa com - %2$s. Esse botão abre o navegador de listas de palavras na lista do jogador atual. diff --git a/xwords4/android/res_src/values-sk/strings.xml b/xwords4/android/res_src/values-sk/strings.xml index fced902c6..236ecaad3 100644 --- a/xwords4/android/res_src/values-sk/strings.xml +++ b/xwords4/android/res_src/values-sk/strings.xml @@ -1170,17 +1170,13 @@ XLATE ME: This button opens the wordlist browser on the current player\'s wordlist. - XLATE ME: No word in %1$s starts with - %2$s. XLATE ME: Pick tiles face-up - XLATE ME: First letters - XLATE ME: Find XLATE ME: Move From f573c132b7e301646f8a2703606bfcbf15c77b68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= Date: Thu, 13 Aug 2020 10:01:07 +0000 Subject: [PATCH 02/25] Translated using Weblate (Turkish) Currently translated at 2.0% (18 of 861 strings) --- xwords4/android/res_src/values-tr/strings.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/xwords4/android/res_src/values-tr/strings.xml b/xwords4/android/res_src/values-tr/strings.xml index 52daed98e..34fe5e176 100644 --- a/xwords4/android/res_src/values-tr/strings.xml +++ b/xwords4/android/res_src/values-tr/strings.xml @@ -4,8 +4,8 @@ %1$s (%2$s) %1$s (robot) (burada değil henüz...) - \"%1$s\" odası için yapılandırıldı - \"%1$s\" odasındaki oyuncuları bekliyor + “%1$s” odası için yapılandırıldı + “%1$s” odasındaki oyuncuları bekliyor Hareketler için röle gözden geçiriliyor… Hareketleri gözetle Uygulama ayarları… @@ -17,8 +17,8 @@ %1$d hareket edildi Oyun bitti - Oyuncular oda \'\'%1$s\'\'e davet edildi + Oyuncular “%1$s” odasına davet edildi Oyuncular davet edildi - Oda \'\'%1$s\'\'de oyun bitti - \'\'%1$s\'\' odasında oyun devam ediyor + “%1$s” odasında oyun bitti + “%1$s” odasında oyun devam ediyor \ No newline at end of file From 5a8f586e815ae30027b3c6dc5762047791bbf66e Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Tue, 25 Aug 2020 23:55:41 +0200 Subject: [PATCH 03/25] Update translation files Updated by "Cleanup translation files" hook in Weblate. Translation: Crosswords/Android Translate-URL: https://hosted.weblate.org/projects/xwords/android/ --- xwords4/android/res_src/values-ar/strings.xml | 1 - xwords4/android/res_src/values-cs/strings.xml | 1 - xwords4/android/res_src/values-es/strings.xml | 1 - xwords4/android/res_src/values-ja/strings.xml | 6 ++---- xwords4/android/res_src/values-sk/strings.xml | 1 - 5 files changed, 2 insertions(+), 8 deletions(-) diff --git a/xwords4/android/res_src/values-ar/strings.xml b/xwords4/android/res_src/values-ar/strings.xml index b26276292..0440a5152 100644 --- a/xwords4/android/res_src/values-ar/strings.xml +++ b/xwords4/android/res_src/values-ar/strings.xml @@ -1,6 +1,5 @@ - إضافة مجموعة %1$s (%2$s) حذف إعدادات التطبيق… diff --git a/xwords4/android/res_src/values-cs/strings.xml b/xwords4/android/res_src/values-cs/strings.xml index ac40cac96..d6d3e6d43 100644 --- a/xwords4/android/res_src/values-cs/strings.xml +++ b/xwords4/android/res_src/values-cs/strings.xml @@ -150,7 +150,6 @@ Hra %1$d Hráč %1$d Délka hry v minutách - Přidat skupinu %1$s (%2$s) (není tu ještě…) Nastaveno pro místnost diff --git a/xwords4/android/res_src/values-es/strings.xml b/xwords4/android/res_src/values-es/strings.xml index dae0acec1..e5e8daf80 100644 --- a/xwords4/android/res_src/values-es/strings.xml +++ b/xwords4/android/res_src/values-es/strings.xml @@ -1,6 +1,5 @@ - Añadir grupo %1$s (%2$s) %1$s (robot) (estableciendo conexión…) diff --git a/xwords4/android/res_src/values-ja/strings.xml b/xwords4/android/res_src/values-ja/strings.xml index 4db568392..e6779fd33 100644 --- a/xwords4/android/res_src/values-ja/strings.xml +++ b/xwords4/android/res_src/values-ja/strings.xml @@ -468,7 +468,6 @@ 下に移動 マイ ゲーム 新しいゲーム - " \n @@ -489,10 +488,10 @@ ゲームをタップすると開きます。\n\n代わりに、左にあるアイコンをタップしてゲームを選択または選択解除し、選択したゲームを操作することができます。例えば、削除する場合は、メニューまたは \"アクションバー\" を使用します 戻るボタンは、終了ではなくすべての選択がクリアされます。アプリを終了するには、もう一度押してください。 - ゲーム: %1$d + ゲーム: %1$d - グループ: %1$d + グループ: %1$d サムネイルのサイズ 無効 @@ -984,7 +983,6 @@ WiFi ダイレクト経由で接続可能なデバイスはありません。MQTT 招待状 Internet/MQTT \"%1$s\" は %2$s のタイルで正しくスペルできません。 - 「スペル」のタイルを選択してください 新しい MQTT ベースのリレー API の URL MQTT QOS MQTT ポート diff --git a/xwords4/android/res_src/values-sk/strings.xml b/xwords4/android/res_src/values-sk/strings.xml index 236ecaad3..abb2c130b 100644 --- a/xwords4/android/res_src/values-sk/strings.xml +++ b/xwords4/android/res_src/values-sk/strings.xml @@ -9,7 +9,6 @@ ordering is wrong for your language.--> XLATE ME: %1$s (%2$s) - XLATE ME: Add group Konfigurovať XLATE ME: Move to group… From 4edf9f6a4fb08c8f9d550647792a871018990f7c Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Tue, 8 Sep 2020 07:22:15 +0200 Subject: [PATCH 04/25] Update translation files Updated by "Cleanup translation files" hook in Weblate. Translation: Crosswords/Android Translate-URL: https://hosted.weblate.org/projects/xwords/android/ --- xwords4/android/res_src/values-ca/strings.xml | 9 ++------- xwords4/android/res_src/values-de/strings.xml | 9 ++------- xwords4/android/res_src/values-fr/strings.xml | 13 ++----------- xwords4/android/res_src/values-ja/strings.xml | 5 ----- xwords4/android/res_src/values-nb-rNO/strings.xml | 9 ++------- xwords4/android/res_src/values-nl/strings.xml | 9 ++------- xwords4/android/res_src/values-pl/strings.xml | 11 +++-------- xwords4/android/res_src/values-pt/strings.xml | 3 --- xwords4/android/res_src/values-sk/strings.xml | 3 --- 9 files changed, 13 insertions(+), 58 deletions(-) diff --git a/xwords4/android/res_src/values-ca/strings.xml b/xwords4/android/res_src/values-ca/strings.xml index 059463518..410aeb717 100644 --- a/xwords4/android/res_src/values-ca/strings.xml +++ b/xwords4/android/res_src/values-ca/strings.xml @@ -458,10 +458,10 @@ Introduïu el vostre nom aquí. S\'usarà en crear partides noves. (Podreu Mou les partides seleccionades a: Missatge del dia - Partides: %1$d + Partides: %1$d - Grups: %1$d> + Grups: %1$d> Mida de la miniatura Desactivat @@ -556,8 +556,6 @@ Introduïu el vostre nom aquí. S\'usarà en crear partides noves. (Podreu Port del repetidor de partides Escriu les partides a la targeta SD Carrega les partides de la targeta SD - Accepta invitacions duplicades - Accepta invitacions més d\'una vegada GSM CDMA rowid @@ -657,7 +655,6 @@ Introduïu el vostre nom aquí. S\'usarà en crear partides noves. (Podreu Fitxes els faristol quadrades Les actualitzacions són disponibles per a algun dels diccionaris. Voleu baixar la versió nova de %1$s ara? Estadístiques de la partida en xarxa - ID de la versió de codi font Port de l\'aparell repetidor SMS curtcircuit a un mateix Simula tenir ràdio @@ -672,7 +669,6 @@ Introduïu el vostre nom aquí. S\'usarà en crear partides noves. (Podreu Jugar via SMS usa la mateixa tecnologia que els missatges SMS. Els missatges seran invisibles, l\'operadora els considera missatges de text, per tant potser preferiu inhabilitar aquesta característica llevat que tingueu missatges SMS il·limitats (o un bon pressupost). Noteu que l\'Android només permet aquesta característica en els dispositius amb operadora GSM, això és qualsevol operadora mundial, excepte Verizon i Sprint. Useu Bluetooth per a jugar contra un aparell proper que estigui aparellat amb el vostre. Voleu usar la disposició de tauleta (costat per costat)? - Ja teniu una partida que sembla s\'ha creat (el %1$s) amb la mateixa invitació. Esteu segur de voler crear-ne una altra? Aquesta acció comprova que no hi hagin jugades o missatges pendents al repetidor de totes partides i marca aquelles amb jugades pendents. Si obriu una partida marcada connectarà i sincronitzarà. (en una versió posterior aquestes jugades es baixaran en segon pla.) Teniu una partida connectada i iniciada en una sala nova. Una vegada els aparells que falten s\'hagin unit a la vostra sala, i el CrossWords hagi assignat les fitxes, la partida pot començar. Heu connectat i unit a una partida al repetidor. Rebreu notificacions quan els aparells que manquen s\'hi hagin unit a la sala i pugui començar la partida. @@ -850,7 +846,6 @@ de %2$d destinataris. Useu el botó de tornar a Esteu segur de voler desactivar el joc via repetidor? Força la disposició de tauleta Força la disposició de telèfon - ID de l\'aparell (en el repetidor) Copia la informació git al porta-retalls URL per a l\'API web del repetidor Usa WiFi Direct per a jugar contra aparells propers amb WiFi Direct i el CrossWords instal·lat. diff --git a/xwords4/android/res_src/values-de/strings.xml b/xwords4/android/res_src/values-de/strings.xml index ed4037279..8bc396ec6 100644 --- a/xwords4/android/res_src/values-de/strings.xml +++ b/xwords4/android/res_src/values-de/strings.xml @@ -316,7 +316,6 @@ Speichern Verwerfen Erneut versuchen - Sie haben bereits eine Partie, die anscheinend von der selben Einladung erzeugt wurde (auf %1$s). Sind Sie sicher, dass Sie eine weitere erzeugen wollen? Zur Information … %1$s (%2$d) Aktuelle Auswahl: %1$s @@ -541,10 +540,10 @@ \nSie können stattdessen die Icons links antippen, um Partien aus- oder abzuwählen, und dann mit den ausgewählten Partien etwas tun, z. B. sie löschen, indem Sie das Menü oder die „Aktionsleiste“ benutzen. Der Zurück-Button löscht die Auswahl anstatt die App zu beenden. Drücken Sie ihn erneut, um die App zu beenden. - Partien: %1$d + Partien: %1$d - Gruppen: %1$d + Gruppen: %1$d Vorschaubildgröße Deaktiviert @@ -717,7 +716,6 @@ Netzwerk-Statistiken Partien von SD-Karte laden Git-Informationen in die Zwischenablage kopieren - Einladungen mehrfach annehmen Erinnerungsintervall (Minuten1, Minuten2, …) GSM CDMA @@ -837,13 +835,10 @@ Menüeinträge usw. (nur Release-Builds) Einladungen zeigen Partie-Netzwerkstatistik - Version des Quellcodes - Geräte-ID (auf Zwischenstation) Spiel-Port auf Zwischenstation Geräte-Port auf Zwischenstation %1$s/%2$s Partien auf SD-Kartie speichern - Doppelte Einladungen annehmen Pseudo-Locale zum Übersetzen SMS-Selbstverbindung aktivieren Mobilfunk weglassen bei gleichen Nummern diff --git a/xwords4/android/res_src/values-fr/strings.xml b/xwords4/android/res_src/values-fr/strings.xml index db155a0a1..70946aeb3 100644 --- a/xwords4/android/res_src/values-fr/strings.xml +++ b/xwords4/android/res_src/values-fr/strings.xml @@ -1522,9 +1522,6 @@ mots) - Vous avez déjà une partie qui semble -avoir été créée (sur %1$s) avec la même invitation. Êtes-vous sûr de vouloir en -créer une autre ? Pour information… @@ -1783,7 +1780,6 @@ modèle. # Dialog giving copyright and other basic info about # the app ########################################################### --> - Nouvelles parties - Le bouton retour efface les sélections au lieu de quitter. Pressez le de nouveau pour quitter l\'application. - Parties : %1$d + Parties : %1$d - Groupes : %1$d + Groupes : %1$d Taille des vignettes @@ -2788,7 +2783,6 @@ changement, ou l\'éditer pour lui attribuer une façon de se connecter ?Statistiques réseau de la partie - Identifiant de version du source Port de partie du relai @@ -2806,13 +2800,11 @@ changement, ou l\'éditer pour lui attribuer une façon de se connecter ?Charger BDD depuis carte SD - Accepter les invitations redondantes Fausse locale pour les traductions - Accepter les invitations plusieurs fois Intervalles des rappels (minutes1,minutes2,…) @@ -2945,7 +2937,6 @@ pour la langue Êtes-vous sûr de vouloir supprimer les %1$d numéros de téléphone cochés ? Désactiver les rappels de parties en solo - Identifiant d\'appareil (sur le relai) Récupération des parties du relai Traitement des parties Sélectionner diff --git a/xwords4/android/res_src/values-ja/strings.xml b/xwords4/android/res_src/values-ja/strings.xml index 16f01deff..61392c2e2 100644 --- a/xwords4/android/res_src/values-ja/strings.xml +++ b/xwords4/android/res_src/values-ja/strings.xml @@ -292,7 +292,6 @@ 保存 破棄 再試行 - 既に同じ招待状から (%1$s) 作成されていると思われるゲームがあります。別に作成してもよろしいですか? 参考までに… 残りのタイル タイルの数と値 @@ -653,15 +652,12 @@ メニュー項目等 (リリース ビルドのみ) ネットワーク統計情報 ゲーム ネットワーク統計情報 - ソース バージョン id リレー ゲーム ポート リレー デバイス ポート %1$s/%2$s SD カードにゲームを書き込む SD カードからゲームをロード - 重複する招待を受け入れる 翻訳の擬似地域 - 2 回以上の招待を受け入れます リマインダーの間隔 (1分、2分、…) 自分に SMS を短絡させる 電話番号が同じときに無線をスキップします @@ -724,7 +720,6 @@ 再戦: %1$s リマインダーの切り替え 一人ゲーム リマインダーを無効にする - デバイス ID (リレー上の) 再戦は2人のゲームに限られていますが、少なくとも今のところは、より多くのデバイスでは難しく、2人以上でプレイすることはまれだと思います。私が間違っているようであれば、優先順位を上げますのでお知らせください。 招待タイトルのリレー リレーからゲームを取得中 diff --git a/xwords4/android/res_src/values-nb-rNO/strings.xml b/xwords4/android/res_src/values-nb-rNO/strings.xml index ac861da32..773f67458 100644 --- a/xwords4/android/res_src/values-nb-rNO/strings.xml +++ b/xwords4/android/res_src/values-nb-rNO/strings.xml @@ -298,10 +298,10 @@ Koble til igjen Flytt valgte spill til: - Spill: %1$d + Spill: %1$d - Grupper: %1$d + Grupper: %1$d Miniatyrbildestørrelse Avskrudd @@ -414,7 +414,6 @@ %1$s/%2$s Skriv spill til SD-kort Last spill fra SD-kort - Godta invitasjoner mer enn én gang Kortslutt SMS til deg selv Lat som du har radio Ikke lat som @@ -654,12 +653,9 @@ Ordlistenedlastingsnettadresse Menyelementer osv. (kun utgivelsesbygg) Spillnettverksstatistikk - Kildekodeversjons-ID - Enhets-ID (på relé) Relé-spillport Relé-enhetsport Kopier Git-info til utklippstavle - Godta duplikatinvitasjoner Juks til lokale for oversettelse Påminnelsesintervall (minutt1,minutt2,…) Send via NFC til egen ehet? @@ -692,7 +688,6 @@ Erstatningsordliste (antall ord) Trekk i spillet %1$s Din tur i spillet %1$s - Du har allerede et spill som ser ut til å ha blitt opprettet (den %1$s) fra samme invitasjon. Er du sikker på at du vil opprette en ny? Til din opplysning… Velg nye flis for stativet Flisopptellinger og -verdier diff --git a/xwords4/android/res_src/values-nl/strings.xml b/xwords4/android/res_src/values-nl/strings.xml index c311dfbc2..c8e9cac59 100644 --- a/xwords4/android/res_src/values-nl/strings.xml +++ b/xwords4/android/res_src/values-nl/strings.xml @@ -299,7 +299,6 @@ Opslaan Annuleren Opnieuw proberen - Je hebt al een spel dat gemaakt is (via %1$s) met dezelfde uitnodiging. Weet je zeker dat je nog een spel aan wilt maken? Ter informatie… Letters in zak Letter hoeveelheid en waardes @@ -476,10 +475,10 @@ Als je drukt op een spel open je het.\n\nJe kunt op de iconen aan de linkerkant drukken om spellen te selecteren of deselecteren. Daarna kun je de spellen bewerken, bijvoorbeeld verwijderen, met behulp van het menu of de actiebalk. De terug knop maakt de selectie leeg in plaats van af te sluiten. Druk er nogmaals op om de app af te sluiten. - Spellen: %1$d + Spellen: %1$d - Groepen: %1$d + Groepen: %1$d Voorbeeldgrootte Uitgeschakeld @@ -643,15 +642,12 @@ Menuitems etc. (enkel uitgegeven versies) Netwerkstatistieken Netwerkstatistieken spel - Bron versie ID Relay spel poort Relay apparaat poort %1$s/%2$s Schrijf spellen naar SD kaart Laad spellen van SD kaart - Accepteer dubbele uitnodigingen Neppe taal voor vertalingen - Accepteer uitnodigingen meer dan eens Herinnering intervallen (minuten1,minuten2,...) Stuur SMS berichten naar zelf Schakel radio over als telefoonnummers gelijk zijn @@ -753,7 +749,6 @@ Beurt herinneringen Schakel solo spel herinneringen uit Toon uitnodigingen - Apparaat ID (op relay) Rematch is momenteel enkel beschikbaar voor spellen met twee personen, omdat dit moeilijker is met meer apparaten en ik denk dat het niet vaak gebeurt dat mensen met meer dan twee spelen. Laat het me weten als ik het mis heb, dan hoog ik de prioriteit op. Relay uitnodigingstitel Spellen ophalen van relay diff --git a/xwords4/android/res_src/values-pl/strings.xml b/xwords4/android/res_src/values-pl/strings.xml index 9386bd536..3b9fa9b5e 100644 --- a/xwords4/android/res_src/values-pl/strings.xml +++ b/xwords4/android/res_src/values-pl/strings.xml @@ -398,7 +398,6 @@ Gracz %1$d Poruszaj się w grze %1$s Wiadomość czatu w grze %1$s - "Masz już tę grę, która wydaje się być utworzona (na %1$s) z tego samego zaproszenia. Czy na pewno chcesz utworzyć nową\?" INFORMUJĘ, ŻE.… Wybierz kafelek dla pustego Wybierz nowe kafelki do zasobnika @@ -590,10 +589,10 @@ \nMożesz zamiast tego możesz stuknąć ikony po lewej stronie, aby wybrać lub odznaczyć gry, a następnie wykonać różne działania w wybranych grach, np. aby je usunąć, za pomocą menu lub „Paska zadań” Przycisk Wstecz usuwa wszystkie zaznaczenia zamiast wyjść. Naciśnij go ponownie, aby opuścić aplikację. - Gry: %1$d + Gry: %1$d - Grupy: %1$d + Grupy: %1$d Rozmiar miniaturki Wyłączone @@ -757,17 +756,13 @@ Statystyki sieci Pokaż zaproszenia Statystyki gry sieciowej - Identyfikator wersji źródła - Identyfikator urządzenia (na przekaźniku) Przekaźnik portu gier Przekaźnik portu urządzenia %1$s/%2$s Zapisz gry na kartę SD Załaduj gry z karty SD Skopiuj informacje git do schowka - Zaakceptuj duplikaty zaproszeń Fałszywy język do tłumaczenia - Akceptuj zaproszenia więcej niż raz Przypomnienie w odstępach (1 minuty, 2 minut,...) Akceptuj SMS do siebie GSM @@ -991,4 +986,4 @@ 2W 2L Włącz licznik na ruch - + \ No newline at end of file diff --git a/xwords4/android/res_src/values-pt/strings.xml b/xwords4/android/res_src/values-pt/strings.xml index e617450d4..57fbc14f8 100644 --- a/xwords4/android/res_src/values-pt/strings.xml +++ b/xwords4/android/res_src/values-pt/strings.xml @@ -1200,9 +1200,6 @@ confused. But some people who play together all the time use the same room name over and over so they'll get this warning and it's harmless to ignore it. --> - Você já tem um jogo aparentemente - criado (em %1$s) do mesmo convite. Tem certeza que você quer - criar outro? Para sua informação... - XLATE ME: You already have a game that seems - to have been created (on %1$s) from the same invitation. Are you - sure you want to create another? From c949033ad65b5caa124d7b561900d94fb7d230fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dimitry=20Barr=C3=A9?= Date: Thu, 10 Sep 2020 14:50:55 +0000 Subject: [PATCH 05/25] Translated using Weblate (English) Currently translated at 100.0% (858 of 858 strings) --- .../app/src/main/res/values/strings.xml | 39 ++++--------------- 1 file changed, 8 insertions(+), 31 deletions(-) diff --git a/xwords4/android/app/src/main/res/values/strings.xml b/xwords4/android/app/src/main/res/values/strings.xml index 606e88f37..bee8e941f 100644 --- a/xwords4/android/app/src/main/res/values/strings.xml +++ b/xwords4/android/app/src/main/res/values/strings.xml @@ -51,7 +51,7 @@ Players invited Players invited to room “%1$s” - Game over + Game over sddsf @@ -1385,7 +1385,6 @@ settings, e.g. the number of players, cannot be changed without restarting it. When you leave this page you will have a chance to discard changes to avoid a restart. - @@ -1429,7 +1428,6 @@ arrow.” Then tiles in the rack replace the arrow when you tap them. Tap the arrow to change its direction or to hide it. - @@ -1474,9 +1472,7 @@ \n\tVersion code: %3$d \n\tSource (git) rev: %4$s \n\tBuilt: %5$s - Device ID: %1$s - CrossWords for Android \nCopyright (C) 1998-2020 by Eric House. This free/open source software is @@ -1533,7 +1529,6 @@ Move New group - Apply Filter @@ -1551,13 +1546,11 @@ Tiles for %1$s - About Wordlist - Starts with @@ -1569,7 +1562,6 @@ words ending in GIN if the box under this head is checked--> Any Order - Letter Value - Pick %1$d for me @@ -1604,19 +1595,16 @@ Words no longer than - The minimum length value cannot be greater than the maximum value. Unable to apply filter. - Loading %1$s… Processing %1$d words - You can now filter wordlists by @@ -1624,7 +1612,6 @@ by tapping the Expander Arrow at the upper-right corner of the window.\n\nRead more in the FAQ by tapping the button below. - Email author… Comment about CrossWords @@ -1958,9 +1945,9 @@ - Are you sure you want to delete + Are you sure you want to delete the group %1$s? - Are you sure you want to delete + Are you sure you want to delete the groups %1$s? @@ -1999,12 +1986,12 @@ selection instead of exiting. Hit it again to exit the app. - One game selected - %1$d games selected + One game selected + %1$d games selected - One group selected - %1$d groups selected + One group selected + %1$d groups selected Thumbnail size Disabled @@ -2482,9 +2469,7 @@ words.\n\nUse this feature to check the validity of words you’re thinking of playing, or to look up an unfamiliar word provided as a hint. - For transmitting CrossWords moves - Duplicate mode @@ -2492,7 +2477,6 @@ Dup %1$s (dup.) - Submit the current move?\n @@ -2501,10 +2485,8 @@ where all players have the same tiles - Unhide duplicate-mode options (It’s too experimental right now) - Same tiles assigned to all players @@ -2571,7 +2553,6 @@ Paused by: %1$s. Message: %1$s. Auto-paused. - CrossWords seems to have crashed recently while this game was open. It may be damaged, and opening it might cause another crash. Do you want to try opening @@ -2596,7 +2577,6 @@ Are you sure you want to erase your debug logs? This action cannot be undone. - “%1$s” cannot be spelled with %2$s tiles. - New Feature Alert - Show FAQ - Internet/MQTT MQTT Invitation I’m experimenting with this as a replacement for the relay. - + \ No newline at end of file From 8d518bba1cb0fd94820fbd6c44e95ced6607a22e Mon Sep 17 00:00:00 2001 From: ssantos Date: Mon, 28 Sep 2020 14:00:28 +0000 Subject: [PATCH 06/25] Translated using Weblate (Portuguese) Currently translated at 40.6% (349 of 858 strings) --- xwords4/android/res_src/values-pt/strings.xml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/xwords4/android/res_src/values-pt/strings.xml b/xwords4/android/res_src/values-pt/strings.xml index 57fbc14f8..a9af86314 100644 --- a/xwords4/android/res_src/values-pt/strings.xml +++ b/xwords4/android/res_src/values-pt/strings.xml @@ -822,8 +822,7 @@ Comportamento - Configurações do - comportamento do aplicativo + Configurações do comportamento da app @@ -1710,8 +1709,8 @@ O jogo chamado \"%1$s\" foi deletado em outro dispositivo. Não será mais possível jogá-lo. Convite enviado via %1$s em %2$s. Destinatário desconhecido. Convite enviado via Bluetooth para o dispositivo pareado \"%1$s\" em %2$s - Não foi possível iniciar o aplicativo de SMS - Essa nova opção inicia seu aplicativo padrão de SMS com um convite pronto para ser enviado -- quando funciona. Cada aplicativo de SMS é diferente e alguns não cooperam. + Não foi possível iniciar a app de SMS + Essa nova opção inicia a sua app predefinida de SMS com um convite pronto para ser enviado — se funcionam. Cada app de SMS é diferente e alguns não cooperam. Convite enviado via SMS para %1$s em %2$s Convite enviado via Data SMS para o número de telefone %1$s em %2$s Ou apenas toque no Convite -- se o outro dispositivo também possuir Android Beaming e estiver perto. From bb6afba2147f2ef6185869b021dce48d129c9478 Mon Sep 17 00:00:00 2001 From: ssantos Date: Thu, 1 Oct 2020 21:25:58 +0000 Subject: [PATCH 07/25] Translated using Weblate (Portuguese) Currently translated at 40.6% (349 of 858 strings) --- xwords4/android/res_src/values-pt/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/xwords4/android/res_src/values-pt/strings.xml b/xwords4/android/res_src/values-pt/strings.xml index a9af86314..4a8abe862 100644 --- a/xwords4/android/res_src/values-pt/strings.xml +++ b/xwords4/android/res_src/values-pt/strings.xml @@ -74,7 +74,7 @@ Listas de palavras - Configurações + Configurações da app… Mover para grupo... - Excluir + Apagar o jogo @@ -1672,8 +1672,8 @@ Mesmo se puderem ser mais altas Altere o nome deste jogo (apenas neste dispositivo) para: - Você tem certeza que deseja excluir o 1 jogo selecionado? Esta ação não poderá ser desfeita. - Você tem certeza que deseja excluir os %1$d jogos selecionados? Esta ação não poderá ser desfeita. + Tem certeza que deseja apagar o 1 jogo selecionado\? Esta ação não poderá ser desfeita. + Tem certeza que deseja apagar os %1$d jogos selecionados\? Esta ação não poderá ser desfeita. Você tem certeza de que deseja redefinir o 1 jogo selecionado?\n\n(Redefinir apaga todos os movimentos e as informações de conexão.) From c316be6adbd1bc18007dc2fe204c58b8114d90f1 Mon Sep 17 00:00:00 2001 From: ssantos Date: Sun, 4 Oct 2020 07:49:49 +0000 Subject: [PATCH 08/25] Translated using Weblate (Portuguese) Currently translated at 40.6% (349 of 858 strings) --- xwords4/android/res_src/values-pt/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xwords4/android/res_src/values-pt/strings.xml b/xwords4/android/res_src/values-pt/strings.xml index 4a8abe862..cc768cb4e 100644 --- a/xwords4/android/res_src/values-pt/strings.xml +++ b/xwords4/android/res_src/values-pt/strings.xml @@ -57,7 +57,7 @@ list_item_delete contextual menu, you are asked to confirm. This is the text of the first button ("Cancel" is the second). --> - Excluir + Apagar From 07ad77930650dd268bbd58e86990771c42ed2972 Mon Sep 17 00:00:00 2001 From: Vanessa Regina Andrade dos Santos Date: Thu, 8 Oct 2020 03:26:35 +0200 Subject: [PATCH 09/25] Added translation using Weblate (Portuguese (Brazil)) --- xwords4/android/res_src/values-pt-rBR/strings.xml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 xwords4/android/res_src/values-pt-rBR/strings.xml diff --git a/xwords4/android/res_src/values-pt-rBR/strings.xml b/xwords4/android/res_src/values-pt-rBR/strings.xml new file mode 100644 index 000000000..a6b3daec9 --- /dev/null +++ b/xwords4/android/res_src/values-pt-rBR/strings.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file From c7282603f54473ecefe2e39427b45c286a4fcdc3 Mon Sep 17 00:00:00 2001 From: Vanessa Regina Andrade dos Santos Date: Fri, 9 Oct 2020 01:50:57 +0000 Subject: [PATCH 10/25] Translated using Weblate (Portuguese (Brazil)) Currently translated at 17.8% (153 of 858 strings) --- .../android/res_src/values-pt-rBR/strings.xml | 187 +++++++++++++++++- 1 file changed, 186 insertions(+), 1 deletion(-) diff --git a/xwords4/android/res_src/values-pt-rBR/strings.xml b/xwords4/android/res_src/values-pt-rBR/strings.xml index a6b3daec9..27e74f5b6 100644 --- a/xwords4/android/res_src/values-pt-rBR/strings.xml +++ b/xwords4/android/res_src/values-pt-rBR/strings.xml @@ -1,2 +1,187 @@ - \ No newline at end of file + + passar +\n + - %1$d [tempo] + "Jogador remoto %1$s fez essa jogada: " + Ponto cumulativo: %1$d +\n + Mostrar quadrados + Esconder quadrados + Toque nos quadrados para selecionar… + Novos quadrados: %1$s + + Um quadrado trocado. + %1$d quadrados trocados. + + - %1$d [quadrados não usados] + + %1$d [todos os quadrados restantes] + %1$s contagens/valores: +\n + "O robô t %1$s fez essa jogada: " + Reenviar jogadas + Abandonar + Pontuação final + Histórico do jogo… + Quadros restantes… + Contagens e valores… + Jogo + Desfazer último + Trocar + Turno terminado + Palavra ilegal[s] + Turno perdido. + " Você ainda quer aceitar essa jogada\?" + Palavra[s] %1$s não encontrada na lista de palavras %2$s. + O jogo de nome “%1$s” foi apagado em outro dispositivo. Você não poderá jogar mais. + O servidor perdeu contato com outro dispositivo neste jogo. + Outro host já registrou uma sala usando este nome. Renomeei o seu ou tente novamente mais tarde. + Nenhum host registrou uma sala por este nome. + Você está com mais jogadores do que o host exige. + Problema de conexão + Todos os jogadores estão na sala “%1$s”. + + Dispositivo %1$d conectado ao servidor na sala “%2$s”. Aguardando por um jogador. + Dispositivo %1$d conectado ao servidor na sala “%2$s”. Aguardando por %3$d jogadores. + + pontos + Convite enviado via %1$s no %2$s. Recebedor desconhecido. + Convite enviado pelo servidor para outro dispositivo no %1$s + Convite enviado via Bluetooth para dispositivos emparelhados “%1$s” no %2$s + Esta opção envia seu SMS padrão do app com um convite pronto para envio—Quando funciona. Cada SMS do aplicativo é diferente, e algum deles não cooperam. + Impossibilitado de mandar SMS do aplicativo + Convite enviado via SMS para %1$s no %2$s + Convite enviado via Dados de SMS para o número de telefone %1$s no %2$s + " (Você está esperando vários jogadores remotos. Você não precisa convida-los um de cada vez, mas este alerta não será rejeitado até que todo mundo tenha sido convidado e todos os convites tenham sido aceitos.)" + Ou apenas toque para Convidar -- Se o outro dispositivo também tiver Android Beaming e estiver próximo. + Esse jogo foi criado a partir de um convite que você recebeu. Assim que conectar a quem o enviou e qualquer outro convidado que apareceu o jogo irá começar. + + Você já enviou um convite para um jogador remoto desse jogo. Estamos aguardando ele/ela responder. Por favor, use o botão reenviar convite se você acha que ele não foi enviado. + Você já enviou %1$d únicos convites para esse jogo. Estamos aguardando por %2$d jogadores responder. Por favor, use o botão reenviar convites se você acha que eles não foram enviados. + + + Essa partida está aguardando por um jogador remoto. Você gostaria de convidar alguém para participar—Considerando que você não começou a partida\? + Essa partida está aguardando por %1$d jogadores remotos. Você gostaria de convidar alguém para participar—Considerando que você não começou a partida\? + + (Sem jogadas ainda) + Em um partida com muitos dispositivos deve ter pelo menos um jogador desse dispositivo e outro não. Por favor, verifique os jogadores remotos. + 2L + 3P + 3L + 2P + Cancelar troca + Trocar + Senha: + Jogador robô + Listas de palavras instaladas (in %1$s) + Lista de palavras (%1$s) + Nome: + Jogador remoto + Editar jogador + Modificar primeiro jogador. + Jogador[s] remoto + Jogar + Confirmar salvamento + Este partida está em progresso. Se você salvar essas mudanças podem ser restauradas. Você quer salvar essas mudanças\? + (jogador remoto) + Pelo menos um jogador deve estar marcado como \"Remoto\" para um jogo começar como principal. + Bloquear palavras falsas + Proibir palavras falsas + Avisar se são palavras falsas + ignorar as palavras falsas + Como lidar com \"palavras falsas\" (palavras que não estão na lista) + Palavras Falsas + O robô mais inteligente + Robô mais inteligente + Quão inteligente o robô jogador pode ser\? + Robô inteligente + QI do Robô + Minutos por turno + Minutos por jogador + Permitir timer por jogada + Permitir timer do jogo + Permitir dicas (em rede) + Permitir dicas + Outras configurações + Salas públicas não encontradas para %1$d-jogador na partida %2$s. Tente atualizar ou criar sua própria sala. + Buscando salas públicas para %1$d-jogadores na partida %2$s. + Selecionar sala pública + Criar uma nova sala pública + Nome da sala + Entrar em sala pública + Conexão (via %1$s) + Idioma do jogo/lista de palavras + Idioma do jogo + Misturar jogadores + Adicionar jogador + %1$s configurações (na rede) + Configurações para %1$s + Baixados + Jogadores (%1$d local, %2$d remoto) + Jogadores (toque para editar) + Apagar %1$s deixará você sem qualquer %2$s listas de palavras. Um ou mais jogos não abrirão (até você baixar uma lista de substituição.) + Mude o nome desse jogo (somente nesse dispositivo) para: + Mude o nome desse jogo para: + Partidas que já foram conectadas no servidor não podem ser copiadas. Use \"Novo jogo de\" para criar uma cópia para jogar com as mesmas configurações. + + Você tem certeza que quer apagar o jogo selecionado\? Esta ação não poder ser desfeita. + Você tem certeza que quer apagar %1$d jogos selecionados\? Esta ação não poder ser desfeita. + + Nenhum jogo encontrado que conecte pelo servidor. + Verificar servidor para jogadas etc… + Partida iniciada na sala “%1$s” + + Uma jogada realizada + %1$d jogadas realizadas + + Redefinir + Configurações do APP… + Bloquear configurações + Baixar mais… + Para quais jogadores a lista de palavras %1$s pode ser padrão para novas partidas\? (O idioma %2$s será padrão para ambos.) + %1$s (%2$s) + Idiomas (baseados nas listas de palavras instaladas) + Externo + Interno + Local para lista de palavras %1$s + Ambos + Robô + Humano + + Você tem certeza que quer apagar a lista de palavra %1$s\? + Você tem certeza que quer deletar as listas de palavras %1$s\? + + Tornar padrão + Mudar local de armazenamento + Incluir + Lista de palavras do CrossWords + + Você tem certeza que quer reiniciar o jogo selecionado\? +\n +\n(Reiniciar apaga todas as jogadas e qualquer informação de conexão.) + Você tem certeza que quer reiniciar %1$d jogos selecionados\? +\n +\n(Reiniciar apaga todas as jogadas e qualquer informação de conexão.) + + Renomear jogo + Conexões… + Copiar + Novo jogo de + Restaurar + Apagar jogo + Mudar para grupo… + Renomear… + Opções de jogo… + Sobre o CrossWords… + Verificar jogadas + Listas de palavras… + Apagar + Fim de jogo sddsf + Jogadores convidados para a sala “%1$s” + Jogadores convidados + Fim de jogo na sala “%1$s” + Configurado para sala “%1$s” + Aguardando jogadores na sala “%1$s” + (não está aqui…) + %1$s (robô) + \ No newline at end of file From 2f6019f4c2dd8a290dc23c6bbd22d4355d78906e Mon Sep 17 00:00:00 2001 From: Vanessa Regina Andrade dos Santos Date: Sun, 11 Oct 2020 23:21:27 +0000 Subject: [PATCH 11/25] Translated using Weblate (Portuguese (Brazil)) Currently translated at 18.4% (158 of 858 strings) --- xwords4/android/res_src/values-pt-rBR/strings.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/xwords4/android/res_src/values-pt-rBR/strings.xml b/xwords4/android/res_src/values-pt-rBR/strings.xml index 27e74f5b6..1c0b8c9b5 100644 --- a/xwords4/android/res_src/values-pt-rBR/strings.xml +++ b/xwords4/android/res_src/values-pt-rBR/strings.xml @@ -184,4 +184,12 @@ Aguardando jogadores na sala “%1$s” (não está aqui…) %1$s (robô) + palavra ilegal na jogada; turno perdido! + Trocado %1$s para %2$s. + Histórico do inicio: %1$s +\n + jogada (de %1$s baixo) +\n + jogada (de %1$s cruzado) +\n \ No newline at end of file From c01bd4e8d08dccfb11792a8562e3e823a8b57ac5 Mon Sep 17 00:00:00 2001 From: Vanessa Regina Andrade dos Santos Date: Tue, 13 Oct 2020 20:12:03 +0000 Subject: [PATCH 12/25] Translated using Weblate (Portuguese (Brazil)) Currently translated at 18.9% (163 of 858 strings) --- xwords4/android/res_src/values-pt-rBR/strings.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/xwords4/android/res_src/values-pt-rBR/strings.xml b/xwords4/android/res_src/values-pt-rBR/strings.xml index 1c0b8c9b5..de5afbcb4 100644 --- a/xwords4/android/res_src/values-pt-rBR/strings.xml +++ b/xwords4/android/res_src/values-pt-rBR/strings.xml @@ -191,5 +191,13 @@ jogada (de %1$s baixo) \n jogada (de %1$s cruzado) +\n + Pontuação por turno: %1$d +\n + Bônus por usar todos os quadrados: 50 +\n + " vs. " + %1$s (remoto) + Executar a jogada atual\? \n \ No newline at end of file From 21f22bbb3db2ada69519ba5e39d00e5fd788c91c Mon Sep 17 00:00:00 2001 From: Vanessa Regina Andrade dos Santos Date: Thu, 15 Oct 2020 02:53:43 +0000 Subject: [PATCH 13/25] Translated using Weblate (Portuguese (Brazil)) Currently translated at 22.4% (193 of 858 strings) --- .../android/res_src/values-pt-rBR/strings.xml | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/xwords4/android/res_src/values-pt-rBR/strings.xml b/xwords4/android/res_src/values-pt-rBR/strings.xml index de5afbcb4..1979a9905 100644 --- a/xwords4/android/res_src/values-pt-rBR/strings.xml +++ b/xwords4/android/res_src/values-pt-rBR/strings.xml @@ -200,4 +200,42 @@ %1$s (remoto) Executar a jogada atual\? \n + Aparência + Tamanho do tabuleiro + Minutos por jogador + Palavras falsas encontradas + Lidar com palavras falsas + Aleatoriamente, para novos jogos + Alternar jogadores + Permitir dicas para dois dispositivos do jogo + Permitir a função de dicas + Lista de Palavras para robôs + Listas de palavras para humanos + Listas de Palavras padrão + Listas de Palavras + Jogador humano (seu nome) + Quarto jogador + Terceiro jogador + Segundo jogador + Primeiro jogador + Predefinição dos nomes dos jogadores + Nomes dos jogadores + Configurações padrões para novos jogos + Novos predefinições do jogo + Você tem certeza que quer restaurar as configurações para o seus valores padrões\? + Restaurar cores + Você tem certeza que restaurar todas as configurações de cores para os valores padrões delas\? + Restaurar tudo + Configurações do CrossWords + Você tem certeza que quer desfazer o último turno executado\? (Não há opção de refazer.) + + Falta um quadrado no agrupamento. + Faltam %1$d quadrados no agrupamento . + + + Falta um quadrado no quadro escondido: +\n + Faltam %1$d quadrados no agrupamento e no quadro escondido: +\n + \ No newline at end of file From 30b42fcedf130279d4bf512da9556bc75568e4f0 Mon Sep 17 00:00:00 2001 From: Vanessa Regina Andrade dos Santos Date: Wed, 21 Oct 2020 01:49:19 +0000 Subject: [PATCH 14/25] Translated using Weblate (Portuguese (Brazil)) Currently translated at 23.7% (204 of 858 strings) --- xwords4/android/res_src/values-pt-rBR/strings.xml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/xwords4/android/res_src/values-pt-rBR/strings.xml b/xwords4/android/res_src/values-pt-rBR/strings.xml index 1979a9905..21f3befe8 100644 --- a/xwords4/android/res_src/values-pt-rBR/strings.xml +++ b/xwords4/android/res_src/values-pt-rBR/strings.xml @@ -201,7 +201,7 @@ Executar a jogada atual\? \n Aparência - Tamanho do tabuleiro + Tamanho do quadro Minutos por jogador Palavras falsas encontradas Lidar com palavras falsas @@ -238,4 +238,15 @@ Faltam %1$d quadrados no agrupamento e no quadro escondido: \n + Mostrar a seta do quadro + Esconder os botões do jogo na tela principal deixa os jogos mais visíveis + Esconder botões do novo jogo + Esconder o nome do jogo deixa o quadro levemente mais largo + Esconder barra de título + Estado do jogo + Nome(s) do(s) oponente(s) + Idioma do jogo + <Nada> + Incluir na lista do jogo + Configurações da aparência do controle \ No newline at end of file From 8971cdeebc18e433f6327b3a69497dcd4b01b4fe Mon Sep 17 00:00:00 2001 From: Vanessa Regina Andrade dos Santos Date: Fri, 23 Oct 2020 14:55:36 +0000 Subject: [PATCH 15/25] Translated using Weblate (Portuguese (Brazil)) Currently translated at 26.8% (230 of 858 strings) --- .../android/res_src/values-pt-rBR/strings.xml | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/xwords4/android/res_src/values-pt-rBR/strings.xml b/xwords4/android/res_src/values-pt-rBR/strings.xml index 21f3befe8..9e2dd3441 100644 --- a/xwords4/android/res_src/values-pt-rBR/strings.xml +++ b/xwords4/android/res_src/values-pt-rBR/strings.xml @@ -249,4 +249,30 @@ <Nada> Incluir na lista do jogo Configurações da aparência do controle + Mostrar resumo da pontuação depois do turno de cada jogador robô ou remoto + Novos tipos de quadrados + Não mostrar resumo da pontuação depois do turno de cada jogador humano + Pular confirmação do turno + Explicar outras jogadas + Funcionamento + Controlar configurações do funcionamento do app + Azul + Verde + Vermelho + Linhas do quadro + Dica de bônus no quadrado + Célula vazia/cores de fundo + Cores de fundo do quadro + Cores de fundo do quadrado + Cores das linhas + Palavra tripla + Palavra dupla + Letra tripla + Letra dupla + Editar cores usadas no quadro + Cores individuais + espessura da linha da célula (percentagem, limite de 1 a 25) + Manter a tela do quadro ligada por 10 min + Manter a tela ligada + Quadrados tocados ficam nesta seta quando está visível \ No newline at end of file From 1d41eea48d0dc4d65acd2c7b5be8648f32e980e2 Mon Sep 17 00:00:00 2001 From: Vanessa Regina Andrade dos Santos Date: Mon, 26 Oct 2020 19:16:14 +0000 Subject: [PATCH 16/25] Translated using Weblate (Portuguese (Brazil)) Currently translated at 26.8% (230 of 858 strings) --- xwords4/android/res_src/values-pt-rBR/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xwords4/android/res_src/values-pt-rBR/strings.xml b/xwords4/android/res_src/values-pt-rBR/strings.xml index 9e2dd3441..ff4dea469 100644 --- a/xwords4/android/res_src/values-pt-rBR/strings.xml +++ b/xwords4/android/res_src/values-pt-rBR/strings.xml @@ -251,7 +251,7 @@ Configurações da aparência do controle Mostrar resumo da pontuação depois do turno de cada jogador robô ou remoto Novos tipos de quadrados - Não mostrar resumo da pontuação depois do turno de cada jogador humano + NÃO mostrar resumo da pontuação depois do turno de cada jogador humano Pular confirmação do turno Explicar outras jogadas Funcionamento From a5f8b874781458bf08ab4d7a08da25185d32ffa1 Mon Sep 17 00:00:00 2001 From: Eric House Date: Mon, 7 Sep 2020 17:59:53 -0700 Subject: [PATCH 17/25] remove dead code --- xwords4/common/device.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/xwords4/common/device.c b/xwords4/common/device.c index 5c099fe66..0e4f59d2f 100644 --- a/xwords4/common/device.c +++ b/xwords4/common/device.c @@ -106,7 +106,7 @@ dvc_getMQTTDevID( XW_DUtilCtxt* dutil, XWEnv xwe, MQTTDevID* devID ) typedef enum { CMD_INVITE, CMD_MSG, CMD_DEVGONE, } MQTTCmd; -#define PROTO_0 0 +// #define PROTO_0 0 #define PROTO_1 1 /* moves gameID into "header" relay2 knows about */ static void @@ -158,9 +158,9 @@ dvc_parseMQTTPacket( XW_DUtilCtxt* dutil, XWEnv xwe, const XP_U8* buf, XP_U16 le stream_putBytes( stream, buf, len ); XP_U8 proto = stream_getU8( stream ); - if ( proto != PROTO_0 && proto != PROTO_1 ) { - XP_LOGFF( "read proto %d, expected %d or %d; dropping packet", - proto, PROTO_0, PROTO_1 ); + if ( proto != PROTO_1 ) { + XP_LOGFF( "read proto %d, expected %d; dropping packet", + proto, PROTO_1 ); } else { MQTTDevID myID; stream_getBytes( stream, &myID, sizeof(myID) ); @@ -169,15 +169,8 @@ dvc_parseMQTTPacket( XW_DUtilCtxt* dutil, XWEnv xwe, const XP_U8* buf, XP_U16 le MQTTCmd cmd; XP_U32 gameID = 0; - if ( PROTO_0 == proto ) { - cmd = stream_getU8( stream ); - if ( CMD_INVITE != cmd ) { - gameID = stream_getU32( stream ); - } - } else { - gameID = stream_getU32( stream ); - cmd = stream_getU8( stream ); - } + gameID = stream_getU32( stream ); + cmd = stream_getU8( stream ); switch ( cmd ) { case CMD_INVITE: { From d65fb80dff6758a78f015434eb84e9df41a6a05f Mon Sep 17 00:00:00 2001 From: Eric House Date: Mon, 7 Sep 2020 18:30:21 -0700 Subject: [PATCH 18/25] don't commit me --- .../src/main/java/org/eehouse/android/xw4/GamesListDelegate.java | 1 + 1 file changed, 1 insertion(+) diff --git a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GamesListDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GamesListDelegate.java index 689301c76..8e2ccf93a 100644 --- a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GamesListDelegate.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GamesListDelegate.java @@ -2347,6 +2347,7 @@ public class GamesListDelegate extends ListDelegateBase // creates for ( long rowid : rowids.keySet() ) { if ( nli.forceChannel == rowids.get(rowid) ) { + DbgUtils.printStack( TAG ); makeOkOnlyBuilder( R.string.dropped_dupe ) .setActionPair( Action.OPEN_GAME, R.string.button_open_game ) From b6955696ebfa694dcf632e921d3858d3e92573ca Mon Sep 17 00:00:00 2001 From: Eric House Date: Mon, 7 Sep 2020 18:35:45 -0700 Subject: [PATCH 19/25] again --- .../src/main/java/org/eehouse/android/xw4/GamesListDelegate.java | 1 + 1 file changed, 1 insertion(+) diff --git a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GamesListDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GamesListDelegate.java index 8e2ccf93a..08a24babf 100644 --- a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GamesListDelegate.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GamesListDelegate.java @@ -2348,6 +2348,7 @@ public class GamesListDelegate extends ListDelegateBase for ( long rowid : rowids.keySet() ) { if ( nli.forceChannel == rowids.get(rowid) ) { DbgUtils.printStack( TAG ); + makeOkOnlyBuilder( R.string.dropped_dupe ) .setActionPair( Action.OPEN_GAME, R.string.button_open_game ) From fa3a33f13301ad3029aca03f26cebb1a2af9c6f4 Mon Sep 17 00:00:00 2001 From: Eric House Date: Wed, 9 Sep 2020 15:12:27 -0700 Subject: [PATCH 20/25] offer to hide new-game buttons immediately Don't wait for user to tap one of the buttons. Instead notice when scrolling becomes possible, and offer once per launch until user says "hide" or clicks the don't-ask-again box. --- .../org/eehouse/android/xw4/DlgDelegate.java | 1 - .../android/xw4/GamesListDelegate.java | 60 ++++++++----------- 2 files changed, 25 insertions(+), 36 deletions(-) diff --git a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DlgDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DlgDelegate.java index 866497397..294b77649 100644 --- a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DlgDelegate.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DlgDelegate.java @@ -46,7 +46,6 @@ public class DlgDelegate { OPEN_GAME, CLEAR_SELS, NEW_NET_GAME, - NEW_GAME_PRESSED, SET_HIDE_NEWGAME_BUTTONS, DWNLD_LOC_DICT, NEW_GAME_DFLT_NAME, diff --git a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GamesListDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GamesListDelegate.java index 08a24babf..e26b75995 100644 --- a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GamesListDelegate.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GamesListDelegate.java @@ -997,8 +997,12 @@ public class GamesListDelegate extends ListDelegateBase mCurScrollState = OnScrollListener.SCROLL_STATE_IDLE; lv.setOnScrollListener( new OnScrollListener() { @Override - public void onScroll( AbsListView absListView, int ii, int i1, int i2 ) + public void onScroll( AbsListView absListView, int firstVis, + int visCount, int totalCount ) { + if ( 0 < visCount && visCount < totalCount ) { + checkOfferHideButtons(); + } if ( mCurScrollState == OnScrollListener.SCROLL_STATE_TOUCH_SCROLL ) { lv.setFastScrollEnabled( true ); } @@ -1105,6 +1109,24 @@ public class GamesListDelegate extends ListDelegateBase super.onSaveInstanceState( outState ); } + // Only called when scrolling's necessary + private boolean m_offeredHideButtons = false; + private void checkOfferHideButtons() + { + if ( !m_offeredHideButtons ) { + if ( XWPrefs.getHideNewgameButtons( m_activity ) ) { + m_offeredHideButtons = true; // don't do expensive check again + } else { + m_offeredHideButtons = true; + makeNotAgainBuilder( R.string.not_again_hidenewgamebuttons, + R.string.key_notagain_hidenewgamebuttons ) + .setActionPair( Action.SET_HIDE_NEWGAME_BUTTONS, + R.string.set_pref ) + .show(); + } + } + } + private void getBundledData( Bundle bundle ) { if ( null != bundle ) { @@ -1399,11 +1421,8 @@ public class GamesListDelegate extends ListDelegateBase break; case SET_HIDE_NEWGAME_BUTTONS: - XWPrefs.setHideNewgameButtons(m_activity, true); + XWPrefs.setHideNewgameButtons( m_activity, true ); setupButtons(); - // FALLTHRU - case NEW_GAME_PRESSED: - handleNewGame( m_mySIS.nextIsSolo ); break; case DELETE_GROUPS: @@ -2147,39 +2166,10 @@ public class GamesListDelegate extends ListDelegateBase } } - private void handleNewGame( boolean solo ) - { - m_mySIS.nextIsSolo = solo; - showDialogFragment( DlgID.GAMES_LIST_NEWGAME, solo ); - } - private void handleNewGameButton( boolean solo ) { m_mySIS.nextIsSolo = solo; - - boolean skipOffer = XWPrefs.getHideNewgameButtons( m_activity ); - if ( ! skipOffer ) { - // If the API's availble, offer to hide buttons as soon as there - // are enough games that the list is scrollable. Otherwise fall - // back to there being at least four games. - if ( Build.VERSION.SDK_INT >= 19 ) { - ListView list = getListView(); - skipOffer = !list.canScrollList( 1 ) && !list.canScrollList( -1 ); - } else { - skipOffer = 4 > m_adapter.getCount(); - } - } - - if ( skipOffer ) { - handleNewGame( solo ); - } else { - makeNotAgainBuilder( R.string.not_again_hidenewgamebuttons, - R.string.key_notagain_hidenewgamebuttons, - Action.NEW_GAME_PRESSED ) - .setActionPair( Action.SET_HIDE_NEWGAME_BUTTONS, - R.string.set_pref ) - .show(); - } + showDialogFragment( DlgID.GAMES_LIST_NEWGAME, solo ); } @Override From 88dbc40180f8e5bf870c2be24838a565518e5a0e Mon Sep 17 00:00:00 2001 From: Eric House Date: Thu, 10 Sep 2020 11:13:30 -0700 Subject: [PATCH 21/25] test script: strip extension when making logs dir --- xwords4/linux/scripts/discon_ok2.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xwords4/linux/scripts/discon_ok2.py b/xwords4/linux/scripts/discon_ok2.py index 3b0466766..f7d4c94cc 100755 --- a/xwords4/linux/scripts/discon_ok2.py +++ b/xwords4/linux/scripts/discon_ok2.py @@ -914,7 +914,7 @@ def parseArgs(): def assignDefaults(args): if not args.NROOMS: args.NROOMS = args.NGAMES if len(args.DICTS) == 0: args.DICTS.append('CollegeEng_2to8.xwd') - args.LOGDIR = os.path.basename(sys.argv[0]) + '_logs' + args.LOGDIR = os.path.splitext(os.path.basename(sys.argv[0]))[0] + '_logs' # Move an existing logdir aside if os.path.exists(args.LOGDIR): shutil.move(args.LOGDIR, '/tmp/' + args.LOGDIR + '_' + str(random.randint(0, 100000))) From 81799d3903724c1ccb265891fd7101c05ffc71a9 Mon Sep 17 00:00:00 2001 From: Eric House Date: Thu, 10 Sep 2020 15:11:22 -0700 Subject: [PATCH 22/25] add addrType to comms' main addr when added to channel I'm fixing android client not showing stats for or allowing to disable mqtt after it's added automatically to a game that connects otherwise. Problem was that only the channel got the mqtt address flag. So now add the flag for any type that's added. --- .../org/eehouse/android/xw4/BTService.java | 3 +- .../android/xw4/ConnViaViewLayout.java | 1 + .../eehouse/android/xw4/jni/CommsAddrRec.java | 14 ++++++ xwords4/android/jni/andutils.c | 1 - xwords4/android/jni/xwjni.c | 6 +-- xwords4/common/comms.c | 43 ++++++++++++++----- xwords4/common/comms.h | 14 +++--- xwords4/linux/linuxmain.c | 2 - xwords4/linux/scripts/discon_ok2.py | 7 ++- 9 files changed, 64 insertions(+), 27 deletions(-) diff --git a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/BTService.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/BTService.java index 068f04999..302dc96a1 100644 --- a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/BTService.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/BTService.java @@ -558,7 +558,8 @@ public class BTService extends XWJIService { // listenUsingRfcommWithServiceRecord() in background (on // Android 9) m_serverSocket = null; - Log.ex( TAG, ex ); + // I'm seeing too much of this on two-user systems. + // Log.ex( TAG, ex ); } int nBadCount = 0; diff --git a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/ConnViaViewLayout.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/ConnViaViewLayout.java index 60f037ec9..e528ffb46 100644 --- a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/ConnViaViewLayout.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/ConnViaViewLayout.java @@ -38,6 +38,7 @@ import org.eehouse.android.xw4.jni.CommsAddrRec.CommsConnTypeSet; import org.eehouse.android.xw4.loc.LocUtils; public class ConnViaViewLayout extends LinearLayout { + private static final String TAG = ConnViaViewLayout.class.getSimpleName(); private CommsConnTypeSet m_curSet; private DlgDelegate.HasDlgDelegate m_dlgDlgt; private Activity m_activity; diff --git a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/CommsAddrRec.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/CommsAddrRec.java index 4afd8b889..50f4cc45a 100644 --- a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/CommsAddrRec.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/CommsAddrRec.java @@ -213,6 +213,20 @@ public class CommsAddrRec { } } + @Override + public String toString() + { + if ( BuildConfig.NON_RELEASE ) { + List tmp = new ArrayList<>(); + for ( CommsConnType typ : getTypes() ) { + tmp.add( typ.toString() ); + } + return TextUtils.join(",", tmp ); + } else { + return super.toString(); + } + } + public String toString( Context context, boolean longVersion ) { String result; diff --git a/xwords4/android/jni/andutils.c b/xwords4/android/jni/andutils.c index 31bddfc0b..87d9fc4f2 100644 --- a/xwords4/android/jni/andutils.c +++ b/xwords4/android/jni/andutils.c @@ -603,7 +603,6 @@ addrTypesToJ( JNIEnv* env, const CommsAddrRec* addr ) "(Ljava/lang/Object;)Z" ); XP_ASSERT( !!mid2 ); CommsConnType typ; - /* far as it gets */ for ( XP_U32 st = 0; addr_iter( addr, &typ, &st ); ) { jobject jtyp = intToJEnum( env, typ, PKG_PATH("jni/CommsAddrRec$CommsConnType") ); diff --git a/xwords4/android/jni/xwjni.c b/xwords4/android/jni/xwjni.c index 51a9f01ca..a07454ecc 100644 --- a/xwords4/android/jni/xwjni.c +++ b/xwords4/android/jni/xwjni.c @@ -2183,15 +2183,15 @@ Java_org_eehouse_android_xw4_jni_XwJNI_game_1summarize server_getDupTimerExpires(server) ); if ( !!state->game.comms ) { - CommsAddrRec addr; CommsCtxt* comms = state->game.comms; - comms_getAddr( comms, &addr ); setInt( env, jsummary, "seed", comms_getChannelSeed( comms ) ); setInt( env, jsummary, "missingPlayers", server_getMissingPlayers( server ) ); setInt( env, jsummary, "nPacketsPending", comms_countPendingPackets( state->game.comms ) ); + CommsAddrRec addr; + comms_getAddr( comms, &addr ); setTypeSetFieldIn( env, &addr, jsummary, "conTypes" ); CommsConnType typ; @@ -2226,7 +2226,7 @@ Java_org_eehouse_android_xw4_jni_XwJNI_game_1summarize case COMMS_CONN_SMS: addrps[ii] = (XP_UCHAR*)&addrs[ii].u.sms.phone; break; default: XP_ASSERT(0); break; } - XP_LOGF( "%s: adding btaddr/phone/mac %s", __func__, addrps[ii] ); + XP_LOGFF( "adding btaddr/phone/mac %s", addrps[ii] ); } setStringArray( env, jsummary, "remoteDevs", count, addrps ); } diff --git a/xwords4/common/comms.c b/xwords4/common/comms.c index f410a689f..5b6f0a253 100644 --- a/xwords4/common/comms.c +++ b/xwords4/common/comms.c @@ -194,9 +194,10 @@ static AddressRecord* rememberChannelAddress( CommsCtxt* comms, XWEnv xwe, XP_PlayerAddr channelNo, XWHostID id, const CommsAddrRec* addr ); -static void augmentChannelAddr( AddressRecord* rec, const CommsAddrRec* addr, - XWHostID hostID ); -static void augmentAddr( CommsAddrRec* dest, const CommsAddrRec* src ); +static void augmentChannelAddr( CommsCtxt* comms, AddressRecord* rec, + const CommsAddrRec* addr, XWHostID hostID ); +static void augmentAddr( CommsCtxt* comms, CommsAddrRec* dest, + const CommsAddrRec* src ); static XP_Bool channelToAddress( CommsCtxt* comms, XWEnv xwe, XP_PlayerAddr channelNo, const CommsAddrRec** addr ); static AddressRecord* getRecordFor( CommsCtxt* comms, XWEnv xwe, @@ -1031,7 +1032,7 @@ comms_augmentHostAddr( CommsCtxt* comms, XWEnv xwe, const CommsAddrRec* addr ) && ! addr_hasType( &comms->addr, COMMS_CONN_RELAY ); CommsAddrRec tmp = comms->addr; - augmentAddr( &tmp, addr ); + augmentAddr( comms, &tmp, addr ); util_addrChange( comms->util, xwe, &comms->addr, &tmp ); comms->addr = tmp; @@ -1061,7 +1062,7 @@ comms_addMQTTDevID( CommsCtxt* comms, XP_PlayerAddr channelNo, CommsAddrRec addr = {0}; addr_setType( &addr, COMMS_CONN_MQTT ); addr.u.mqtt.devID = *devID; - augmentAddr( &rec->addr, &addr ); + augmentAddr( comms, &rec->addr, &addr ); } } if ( !found ) { @@ -2266,7 +2267,7 @@ validateInitialMessage( CommsCtxt* comms, XWEnv xwe, XP_LOGF( TAGFMT() "looking at %s", TAGPRMS, cbuf ); rec = getRecordFor( comms, xwe, addr, *channelNo, XP_TRUE ); if ( !!rec ) { - augmentChannelAddr( rec, addr, senderID ); + augmentChannelAddr( comms, rec, addr, senderID ); /* reject: we've already seen init message on channel */ XP_LOGF( TAGFMT() "rejecting duplicate INIT message", TAGPRMS ); rec = NULL; @@ -2341,7 +2342,7 @@ validateChannelMessage( CommsCtxt* comms, XWEnv xwe, const CommsAddrRec* addr, if ( !!rec ) { removeFromQueue( comms, xwe, channelNo, lastMsgRcd ); - augmentChannelAddr( rec, addr, senderID ); + augmentChannelAddr( comms, rec, addr, senderID ); if ( msgID == rec->lastMsgRcd + 1 ) { XP_LOGF( TAGFMT() "expected %d AND got %d", TAGPRMS, @@ -2924,20 +2925,31 @@ logAddrs( const CommsCtxt* comms, XWEnv xwe, const char* caller ) #endif static void -augmentChannelAddr( AddressRecord* const rec, const CommsAddrRec* addr, - XWHostID hostID ) +augmentChannelAddr( CommsCtxt* comms, AddressRecord* const rec, + const CommsAddrRec* addr, XWHostID hostID ) { - augmentAddr( &rec->addr, addr ); + augmentAddr( comms, &rec->addr, addr ); if ( addr_hasType( &rec->addr, COMMS_CONN_RELAY ) ) { if ( 0 != hostID ) { rec->rr.hostID = hostID; XP_LOGF( "%s: set hostID for rec %p to %d", __func__, rec, hostID ); } } + +#ifdef DEBUG + CommsConnType typ; + for ( XP_U32 st = 0; addr_iter( addr, &typ, &st ); ) { + if ( !addr_hasType( &comms->addr, typ ) ) { + XP_LOGFF( "main addr missing type %s", ConnType2Str(typ) ); + XP_ASSERT(0); /* firing */ + } + } +#endif } static void -augmentAddr( CommsAddrRec* destAddr, const CommsAddrRec* srcAddr ) +augmentAddr( CommsCtxt* comms, CommsAddrRec* destAddr, + const CommsAddrRec* srcAddr ) { if ( !!srcAddr ) { CommsConnType typ; @@ -2945,6 +2957,15 @@ augmentAddr( CommsAddrRec* destAddr, const CommsAddrRec* srcAddr ) if ( ! addr_hasType( destAddr, typ ) ) { XP_LOGFF( "adding new type %s to rec", ConnType2Str(typ) ); addr_addType( destAddr, typ ); + + /* If an address is getting added to a channel, the top-level + address should also include the type. The specifics of the + address don't make sense to copy, however. */ + if ( ! addr_hasType( &comms->addr, typ ) ) { + XP_ASSERT( destAddr != &comms->addr ); /* we just added it, so can't be comms->addr */ + XP_LOGFF( "adding %s to comms->addr", ConnType2Str(typ) ); + addr_addType( &comms->addr, typ ); + } } const void* src = NULL; diff --git a/xwords4/common/comms.h b/xwords4/common/comms.h index b36e991f1..e389600df 100644 --- a/xwords4/common/comms.h +++ b/xwords4/common/comms.h @@ -37,14 +37,14 @@ typedef XP_U8 XWHostID; typedef enum { COMMS_CONN_NONE /* I want errors on uninited case */ - ,COMMS_CONN_IR - ,COMMS_CONN_IP_DIRECT - ,COMMS_CONN_RELAY - ,COMMS_CONN_BT - ,COMMS_CONN_SMS + ,COMMS_CONN_IR /* 1 */ + ,COMMS_CONN_IP_DIRECT /* 2 */ + ,COMMS_CONN_RELAY /* 3 */ + ,COMMS_CONN_BT /* 4 */ + ,COMMS_CONN_SMS /* 5 */ ,COMMS_CONN_P2P /* a.k.a. Wifi direct */ - ,COMMS_CONN_NFC - ,COMMS_CONN_MQTT + ,COMMS_CONN_NFC /* 7 */ + ,COMMS_CONN_MQTT /* 8 */ ,COMMS_CONN_NTYPES } CommsConnType; diff --git a/xwords4/linux/linuxmain.c b/xwords4/linux/linuxmain.c index b2e8ff13a..eaa629b9c 100644 --- a/xwords4/linux/linuxmain.c +++ b/xwords4/linux/linuxmain.c @@ -2947,11 +2947,9 @@ main( int argc, char** argv ) addr_addType( &mainParams.addr, COMMS_CONN_MQTT ); break; case CMD_MQTTHOST: - addr_addType( &mainParams.addr, COMMS_CONN_MQTT ); mainParams.connInfo.mqtt.hostName = optarg; break; case CMD_MQTTPORT: - addr_addType( &mainParams.addr, COMMS_CONN_MQTT ); mainParams.connInfo.mqtt.port = atoi(optarg); break; case CMD_INVITEE_MQTTDEVID: diff --git a/xwords4/linux/scripts/discon_ok2.py b/xwords4/linux/scripts/discon_ok2.py index f7d4c94cc..55e392c64 100755 --- a/xwords4/linux/scripts/discon_ok2.py +++ b/xwords4/linux/scripts/discon_ok2.py @@ -472,8 +472,10 @@ def build_cmds(args): PARAMS += [ '--invitee-sms-number', makeSMSPhoneNo(GAME, dev) ] PARAMS += [ '--mqtt-port', args.MQTT_PORT, '--mqtt-host', args.MQTT_HOST ] - if args.ADD_MQTT and DEV == 1: - PARAMS += [ '--force-invite' ] + if args.ADD_MQTT: + PARAMS += [ '--with-mqtt' ] + if DEV == 1: + PARAMS += [ '--force-invite' ] if args.UNDO_PCT > 0: PARAMS += ['--undo-pct', args.UNDO_PCT] @@ -648,6 +650,7 @@ def run_cmds(args, devs): devs.remove(dev) else: time.sleep(1.0) + print('.', end='', flush=True) # if we get here via a break, kill any remaining games if devs: From a8a8f801f7bfe1d490224006689ed42487665f4e Mon Sep 17 00:00:00 2001 From: Eric House Date: Thu, 10 Sep 2020 15:33:06 -0700 Subject: [PATCH 23/25] tweak string --- xwords4/android/app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xwords4/android/app/src/main/res/values/strings.xml b/xwords4/android/app/src/main/res/values/strings.xml index bee8e941f..eb8ef61bf 100644 --- a/xwords4/android/app/src/main/res/values/strings.xml +++ b/xwords4/android/app/src/main/res/values/strings.xml @@ -502,7 +502,7 @@ number %1$s on %2$s Invite sent via SMS to %1$s on %2$s - This new option launches your + This option launches your default SMS app with an invitation ready to send—when it works. Each SMS app is different, and some won’t cooperate. From db366bb515783eba1c9adeb70cd9606666eb5835 Mon Sep 17 00:00:00 2001 From: Eric House Date: Tue, 8 Sep 2020 09:37:23 -0700 Subject: [PATCH 24/25] cleanup --- .../app/src/main/java/org/eehouse/android/xw4/GameUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GameUtils.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GameUtils.java index 116628213..88c203c92 100644 --- a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GameUtils.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GameUtils.java @@ -1088,7 +1088,7 @@ public class GameUtils { } } catch ( GameLock.GameLockedException gle ) { DbgUtils.toastNoLock( TAG, context, rowid, - "feedMessage(): dropping message " + "feedMessage(): dropping message" + " for %d", rowid ); } } From 0cee3c8d60f13796911595c4d4c8f9f695fd3061 Mon Sep 17 00:00:00 2001 From: Eric House Date: Tue, 8 Sep 2020 15:54:59 -0700 Subject: [PATCH 25/25] add systemd service file for relay --- xwords4/relay/relay.service | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 xwords4/relay/relay.service diff --git a/xwords4/relay/relay.service b/xwords4/relay/relay.service new file mode 100644 index 000000000..57f5097c8 --- /dev/null +++ b/xwords4/relay/relay.service @@ -0,0 +1,24 @@ +[Unit] +# specifies metadata and dependencies +Description=Start legacy CrossWords relay +After=postgresql.service + +StartLimitIntervalSec=500 +StartLimitBurst=5 + +[Service] +# Service specify the user and group under which our process will run. +User=relay + +WorkingDirectory=/home/relay/dev/git/xwords/xwords4/relay +ExecStart=/home/relay/dev/git/xwords/xwords4/relay/xwrelay -F -D + +# on-failure ignores SIGTERM and a couple of other signals making it +# harder to test. Not sure if there's downside to 'always' but that's +# what I'm using for now +# Restart=on-failure +Restart=always +RestartSec=5s + +[Install] +WantedBy=multi-user.target