@courthive/i18n 0.4.4 → 0.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/locales/ar.json +10 -105
- package/dist/locales/cs.json +10 -105
- package/dist/locales/de.json +10 -105
- package/dist/locales/en.json +116 -26
- package/dist/locales/es.json +10 -105
- package/dist/locales/fr.json +10 -105
- package/dist/locales/hr.json +10 -105
- package/dist/locales/pt-BR.json +10 -105
- package/dist/locales/zh-CN.json +10 -105
- package/dist/manifest.gen.d.ts +18 -0
- package/dist/manifest.gen.js +27 -2
- package/dist/manifest.json +37 -37
- package/package.json +5 -4
package/dist/locales/hr.json
CHANGED
|
@@ -949,59 +949,7 @@
|
|
|
949
949
|
"structure": "Po strukturi",
|
|
950
950
|
"time": "Po vremenu"
|
|
951
951
|
},
|
|
952
|
-
"showCompleted": "Prikaži dovršene"
|
|
953
|
-
"callToCourt": "__TODO__",
|
|
954
|
-
"now": "__TODO__",
|
|
955
|
-
"nowRowActions": "__TODO__",
|
|
956
|
-
"status": "__TODO__",
|
|
957
|
-
"suspendAll": "__TODO__",
|
|
958
|
-
"resumeAll": "__TODO__",
|
|
959
|
-
"startAll": "__TODO__",
|
|
960
|
-
"rescheduleAll": "__TODO__",
|
|
961
|
-
"unscheduleAll": "__TODO__",
|
|
962
|
-
"rescheduleNowTitle": "__TODO__",
|
|
963
|
-
"chooseDate": "__TODO__",
|
|
964
|
-
"chooseTime": "__TODO__",
|
|
965
|
-
"selectAll": "__TODO__",
|
|
966
|
-
"selectNone": "__TODO__",
|
|
967
|
-
"reschedule": "__TODO__",
|
|
968
|
-
"shift": "__TODO__",
|
|
969
|
-
"shiftCourtsTitle": "__TODO__",
|
|
970
|
-
"shiftRows": "__TODO__",
|
|
971
|
-
"noActiveMatches": "__TODO__",
|
|
972
|
-
"startOnDropTitle": "__TODO__",
|
|
973
|
-
"startOnDropPrompt": "__TODO__",
|
|
974
|
-
"unscheduleAllTitle": "__TODO__",
|
|
975
|
-
"unscheduleAllConfirm": "__TODO__",
|
|
976
|
-
"plan": {
|
|
977
|
-
"badge": "__TODO__",
|
|
978
|
-
"empty": "__TODO__",
|
|
979
|
-
"create": "__TODO__",
|
|
980
|
-
"rename": "__TODO__",
|
|
981
|
-
"nameLabel": "__TODO__",
|
|
982
|
-
"duplicate": "__TODO__",
|
|
983
|
-
"copyName": "__TODO__",
|
|
984
|
-
"summary": "__TODO__",
|
|
985
|
-
"completedLocked": "__TODO__",
|
|
986
|
-
"conflictTip": "__TODO__",
|
|
987
|
-
"new": "__TODO__",
|
|
988
|
-
"delete": "__TODO__",
|
|
989
|
-
"makeOfficial": "__TODO__",
|
|
990
|
-
"rebase": "__TODO__",
|
|
991
|
-
"outOfDate": "__TODO__",
|
|
992
|
-
"outOfDateTip": "__TODO__",
|
|
993
|
-
"deleteTitle": "__TODO__",
|
|
994
|
-
"deleteQuery": "__TODO__",
|
|
995
|
-
"commitTitle": "__TODO__",
|
|
996
|
-
"commitQuery": "__TODO__",
|
|
997
|
-
"commitSkip": "__TODO__",
|
|
998
|
-
"commitDrift": "__TODO__",
|
|
999
|
-
"applied": "__TODO__",
|
|
1000
|
-
"createFailed": "__TODO__",
|
|
1001
|
-
"applyFailed": "__TODO__",
|
|
1002
|
-
"updateFailed": "__TODO__",
|
|
1003
|
-
"defaultName": "__TODO__"
|
|
1004
|
-
}
|
|
952
|
+
"showCompleted": "Prikaži dovršene"
|
|
1005
953
|
},
|
|
1006
954
|
"penalties": {
|
|
1007
955
|
"fail2signout": "Propust odjave",
|
|
@@ -1040,8 +988,7 @@
|
|
|
1040
988
|
"dismiss": "Odbaci",
|
|
1041
989
|
"iSavedIt": "Spremio sam",
|
|
1042
990
|
"remove": "Ukloni",
|
|
1043
|
-
"continueAndUnschedule": "Nastavi i ukloni iz rasporeda"
|
|
1044
|
-
"noScore": "__TODO__"
|
|
991
|
+
"continueAndUnschedule": "Nastavi i ukloni iz rasporeda"
|
|
1045
992
|
},
|
|
1046
993
|
"modals": {
|
|
1047
994
|
"deleteEvents": {
|
|
@@ -1675,11 +1622,6 @@
|
|
|
1675
1622
|
"pickTimes": "Postavite i vrijeme početka i završetka.",
|
|
1676
1623
|
"invalidWindow": "Vrijeme početka mora biti prije vremena završetka.",
|
|
1677
1624
|
"conflictWarning": "Prijava dodana — sudionik ima drugu obvezu tijekom ovog termina."
|
|
1678
|
-
},
|
|
1679
|
-
"editDrawNames": {
|
|
1680
|
-
"title": "__TODO__",
|
|
1681
|
-
"minChars": "__TODO__",
|
|
1682
|
-
"drawRenamed": "__TODO__"
|
|
1683
1625
|
}
|
|
1684
1626
|
},
|
|
1685
1627
|
"dashboard": {
|
|
@@ -1855,9 +1797,7 @@
|
|
|
1855
1797
|
"activeDatesPromptAction": "Postavi aktivne datume",
|
|
1856
1798
|
"cannotDeleteTournament": "Nije moguće izbrisati turnir",
|
|
1857
1799
|
"tournamentNotEnded": "Nije moguće izbrisati turnir prije njegovog datuma završetka. Prvo postavite datum završetka na prošli datum, a zatim izbrišite.",
|
|
1858
|
-
"deleteForbidden": "Niste ovlašteni za brisanje ovog turnira."
|
|
1859
|
-
"matchUpScoredElsewhere": "__TODO__",
|
|
1860
|
-
"overwriteRemoteScore": "__TODO__"
|
|
1800
|
+
"deleteForbidden": "Niste ovlašteni za brisanje ovog turnira."
|
|
1861
1801
|
},
|
|
1862
1802
|
"loginMenu": {
|
|
1863
1803
|
"authorization": "Autorizacija",
|
|
@@ -2054,19 +1994,7 @@
|
|
|
2054
1994
|
"singles": "Pojedinačno",
|
|
2055
1995
|
"doubles": "Parovi",
|
|
2056
1996
|
"team": "Ekipa",
|
|
2057
|
-
"opponents": "Protivnici"
|
|
2058
|
-
"suspended": "__TODO__",
|
|
2059
|
-
"notReady": "__TODO__",
|
|
2060
|
-
"live": "__TODO__",
|
|
2061
|
-
"abandoned": "__TODO__",
|
|
2062
|
-
"cancelled": "__TODO__",
|
|
2063
|
-
"allProfiles": "__TODO__",
|
|
2064
|
-
"competitive": "__TODO__",
|
|
2065
|
-
"routine": "__TODO__",
|
|
2066
|
-
"decisive": "__TODO__",
|
|
2067
|
-
"walkover": "__TODO__",
|
|
2068
|
-
"showTodayView": "__TODO__",
|
|
2069
|
-
"showCompetitivenessView": "__TODO__"
|
|
1997
|
+
"opponents": "Protivnici"
|
|
2070
1998
|
},
|
|
2071
1999
|
"schedule": {
|
|
2072
2000
|
"searchParticipants": "Pretraži sudionike",
|
|
@@ -2328,10 +2256,7 @@
|
|
|
2328
2256
|
"defaultLanguage": "Zadani jezik",
|
|
2329
2257
|
"publishParticipants": "Objavi sudionike",
|
|
2330
2258
|
"country": "Država",
|
|
2331
|
-
"cityState": "Grad / Županija"
|
|
2332
|
-
"timeZoneNotSetTitle": "__TODO__",
|
|
2333
|
-
"timeZoneNotSetBody": "__TODO__",
|
|
2334
|
-
"setTimeZone": "__TODO__"
|
|
2259
|
+
"cityState": "Grad / Županija"
|
|
2335
2260
|
},
|
|
2336
2261
|
"formatWizard": {
|
|
2337
2262
|
"title": "Čarobnjak formata",
|
|
@@ -2710,14 +2635,7 @@
|
|
|
2710
2635
|
"policyUnsetHint": "Prvo odaberite pravila bodova rangiranja za omogućavanje ponovnog izračuna.",
|
|
2711
2636
|
"pipelineOff": "Cjevovod rangiranja nije konfiguriran na poslužitelju (RANKINGS_PIPELINE_URL). Ništa nije ponovno izračunato.",
|
|
2712
2637
|
"failed": "Nije moguće ponovno izračunati rangiranja.",
|
|
2713
|
-
"result": "Ponovno izračunato {{republished}}/{{tournaments}} turnira; generirano {{snapshots}} snimaka."
|
|
2714
|
-
"unprocessed": "__TODO__",
|
|
2715
|
-
"unprocessedRunning": "__TODO__",
|
|
2716
|
-
"fromDateLabel": "__TODO__",
|
|
2717
|
-
"fromDateRequired": "__TODO__",
|
|
2718
|
-
"rerunFromDate": "__TODO__",
|
|
2719
|
-
"rerunRunning": "__TODO__",
|
|
2720
|
-
"bulkNone": "__TODO__"
|
|
2638
|
+
"result": "Ponovno izračunato {{republished}}/{{tournaments}} turnira; generirano {{snapshots}} snimaka."
|
|
2721
2639
|
}
|
|
2722
2640
|
},
|
|
2723
2641
|
"notLoggedInTitle": "Niste prijavljeni",
|
|
@@ -2798,8 +2716,7 @@
|
|
|
2798
2716
|
"crowd": "PUBLIKA",
|
|
2799
2717
|
"anon": "ANONIMNO",
|
|
2800
2718
|
"verified": "POTVRĐENO",
|
|
2801
|
-
"nominated": "NOMINIRAN"
|
|
2802
|
-
"scorekeeper": "__TODO__"
|
|
2719
|
+
"nominated": "NOMINIRAN"
|
|
2803
2720
|
},
|
|
2804
2721
|
"reason": {
|
|
2805
2722
|
"signInRequired": "Za nominaciju je potrebna prijava",
|
|
@@ -2807,20 +2724,13 @@
|
|
|
2807
2724
|
},
|
|
2808
2725
|
"toast": {
|
|
2809
2726
|
"nominateFirst": "Nominirajte potvrđenog zapisničara prije postavljanja delegiranog ishoda.",
|
|
2810
|
-
"noOutcomeToConfirm": "Nema delegiranog ishoda za potvrdu na ovom meču."
|
|
2811
|
-
"noScorekeeperCandidates": "__TODO__",
|
|
2812
|
-
"acceptedLive": "__TODO__"
|
|
2727
|
+
"noOutcomeToConfirm": "Nema delegiranog ishoda za potvrdu na ovom meču."
|
|
2813
2728
|
},
|
|
2814
2729
|
"tooltip": {
|
|
2815
2730
|
"liveTracker": "Rezultat prijavljen putem pratitelja uživo",
|
|
2816
2731
|
"unconfirmed": "Nepotvrđeni delegirani rezultat — potvrdite da postane službeni",
|
|
2817
2732
|
"unconfirmedAria": "Nepotvrđeni delegirani rezultat čeka potvrdu"
|
|
2818
|
-
}
|
|
2819
|
-
"accept": "__TODO__",
|
|
2820
|
-
"nominateScorekeeper": "__TODO__",
|
|
2821
|
-
"removeScorekeeper": "__TODO__",
|
|
2822
|
-
"approveScorekeeper": "__TODO__",
|
|
2823
|
-
"removeScorekeeperApproval": "__TODO__"
|
|
2733
|
+
}
|
|
2824
2734
|
},
|
|
2825
2735
|
"providerSetup": {
|
|
2826
2736
|
"wizardTitle": "Postavite svog pružatelja",
|
|
@@ -2868,10 +2778,5 @@
|
|
|
2868
2778
|
"privacyApplyFailed": "Nije moguće primijeniti pravila privatnosti na postojeće turnire.",
|
|
2869
2779
|
"privacyApplyResult": "Pravila privatnosti primijenjena na {{attached}} turnira; {{already}} ih je već imalo; {{failed}} nije uspjelo."
|
|
2870
2780
|
},
|
|
2871
|
-
"cns": "Konzola"
|
|
2872
|
-
"session": {
|
|
2873
|
-
"expiredMessage": "__TODO__",
|
|
2874
|
-
"logInAgain": "__TODO__"
|
|
2875
|
-
},
|
|
2876
|
-
"overwrite": "__TODO__"
|
|
2781
|
+
"cns": "Konzola"
|
|
2877
2782
|
}
|
package/dist/locales/pt-BR.json
CHANGED
|
@@ -783,59 +783,7 @@
|
|
|
783
783
|
"structure": "Por Estrutura",
|
|
784
784
|
"time": "Por Horário"
|
|
785
785
|
},
|
|
786
|
-
"showCompleted": "Mostrar concluídas"
|
|
787
|
-
"callToCourt": "__TODO__",
|
|
788
|
-
"now": "__TODO__",
|
|
789
|
-
"nowRowActions": "__TODO__",
|
|
790
|
-
"status": "__TODO__",
|
|
791
|
-
"suspendAll": "__TODO__",
|
|
792
|
-
"resumeAll": "__TODO__",
|
|
793
|
-
"startAll": "__TODO__",
|
|
794
|
-
"rescheduleAll": "__TODO__",
|
|
795
|
-
"unscheduleAll": "__TODO__",
|
|
796
|
-
"rescheduleNowTitle": "__TODO__",
|
|
797
|
-
"chooseDate": "__TODO__",
|
|
798
|
-
"chooseTime": "__TODO__",
|
|
799
|
-
"selectAll": "__TODO__",
|
|
800
|
-
"selectNone": "__TODO__",
|
|
801
|
-
"reschedule": "__TODO__",
|
|
802
|
-
"shift": "__TODO__",
|
|
803
|
-
"shiftCourtsTitle": "__TODO__",
|
|
804
|
-
"shiftRows": "__TODO__",
|
|
805
|
-
"noActiveMatches": "__TODO__",
|
|
806
|
-
"startOnDropTitle": "__TODO__",
|
|
807
|
-
"startOnDropPrompt": "__TODO__",
|
|
808
|
-
"unscheduleAllTitle": "__TODO__",
|
|
809
|
-
"unscheduleAllConfirm": "__TODO__",
|
|
810
|
-
"plan": {
|
|
811
|
-
"badge": "__TODO__",
|
|
812
|
-
"empty": "__TODO__",
|
|
813
|
-
"create": "__TODO__",
|
|
814
|
-
"rename": "__TODO__",
|
|
815
|
-
"nameLabel": "__TODO__",
|
|
816
|
-
"duplicate": "__TODO__",
|
|
817
|
-
"copyName": "__TODO__",
|
|
818
|
-
"summary": "__TODO__",
|
|
819
|
-
"completedLocked": "__TODO__",
|
|
820
|
-
"conflictTip": "__TODO__",
|
|
821
|
-
"new": "__TODO__",
|
|
822
|
-
"delete": "__TODO__",
|
|
823
|
-
"makeOfficial": "__TODO__",
|
|
824
|
-
"rebase": "__TODO__",
|
|
825
|
-
"outOfDate": "__TODO__",
|
|
826
|
-
"outOfDateTip": "__TODO__",
|
|
827
|
-
"deleteTitle": "__TODO__",
|
|
828
|
-
"deleteQuery": "__TODO__",
|
|
829
|
-
"commitTitle": "__TODO__",
|
|
830
|
-
"commitQuery": "__TODO__",
|
|
831
|
-
"commitSkip": "__TODO__",
|
|
832
|
-
"commitDrift": "__TODO__",
|
|
833
|
-
"applied": "__TODO__",
|
|
834
|
-
"createFailed": "__TODO__",
|
|
835
|
-
"applyFailed": "__TODO__",
|
|
836
|
-
"updateFailed": "__TODO__",
|
|
837
|
-
"defaultName": "__TODO__"
|
|
838
|
-
}
|
|
786
|
+
"showCompleted": "Mostrar concluídas"
|
|
839
787
|
},
|
|
840
788
|
"penalties": {
|
|
841
789
|
"fail2signout": "Não fez Check-Out",
|
|
@@ -874,8 +822,7 @@
|
|
|
874
822
|
"dismiss": "Dispensar",
|
|
875
823
|
"iSavedIt": "Eu salvei",
|
|
876
824
|
"remove": "Remover",
|
|
877
|
-
"continueAndUnschedule": "Continuar e desagendar"
|
|
878
|
-
"noScore": "__TODO__"
|
|
825
|
+
"continueAndUnschedule": "Continuar e desagendar"
|
|
879
826
|
},
|
|
880
827
|
"modals": {
|
|
881
828
|
"deleteEvents": {
|
|
@@ -1509,11 +1456,6 @@
|
|
|
1509
1456
|
"pickTimes": "Defina os horários de início e término.",
|
|
1510
1457
|
"invalidWindow": "O horário de início deve ser anterior ao de término.",
|
|
1511
1458
|
"conflictWarning": "Registro adicionado — o participante tem outro compromisso durante esta janela."
|
|
1512
|
-
},
|
|
1513
|
-
"editDrawNames": {
|
|
1514
|
-
"title": "__TODO__",
|
|
1515
|
-
"minChars": "__TODO__",
|
|
1516
|
-
"drawRenamed": "__TODO__"
|
|
1517
1459
|
}
|
|
1518
1460
|
},
|
|
1519
1461
|
"dashboard": {
|
|
@@ -1689,9 +1631,7 @@
|
|
|
1689
1631
|
"activeDatesPromptAction": "Definir datas ativas",
|
|
1690
1632
|
"cannotDeleteTournament": "Não é possível excluir o torneio",
|
|
1691
1633
|
"tournamentNotEnded": "Não é possível excluir um torneio antes da data de término. Defina a data de término para uma data passada primeiro e depois exclua.",
|
|
1692
|
-
"deleteForbidden": "Você não está autorizado a excluir este torneio."
|
|
1693
|
-
"matchUpScoredElsewhere": "__TODO__",
|
|
1694
|
-
"overwriteRemoteScore": "__TODO__"
|
|
1634
|
+
"deleteForbidden": "Você não está autorizado a excluir este torneio."
|
|
1695
1635
|
},
|
|
1696
1636
|
"loginMenu": {
|
|
1697
1637
|
"authorization": "Autorização",
|
|
@@ -1888,19 +1828,7 @@
|
|
|
1888
1828
|
"opponents": "Adversários",
|
|
1889
1829
|
"allDates": "Todas as datas",
|
|
1890
1830
|
"today": "Hoje",
|
|
1891
|
-
"noDate": "Sem data"
|
|
1892
|
-
"suspended": "__TODO__",
|
|
1893
|
-
"notReady": "__TODO__",
|
|
1894
|
-
"live": "__TODO__",
|
|
1895
|
-
"abandoned": "__TODO__",
|
|
1896
|
-
"cancelled": "__TODO__",
|
|
1897
|
-
"allProfiles": "__TODO__",
|
|
1898
|
-
"competitive": "__TODO__",
|
|
1899
|
-
"routine": "__TODO__",
|
|
1900
|
-
"decisive": "__TODO__",
|
|
1901
|
-
"walkover": "__TODO__",
|
|
1902
|
-
"showTodayView": "__TODO__",
|
|
1903
|
-
"showCompetitivenessView": "__TODO__"
|
|
1831
|
+
"noDate": "Sem data"
|
|
1904
1832
|
},
|
|
1905
1833
|
"schedule": {
|
|
1906
1834
|
"searchParticipants": "Buscar participantes",
|
|
@@ -2162,10 +2090,7 @@
|
|
|
2162
2090
|
"country": "País",
|
|
2163
2091
|
"cityState": "Cidade / Estado",
|
|
2164
2092
|
"unpublishTournament": "Despublicar Torneio",
|
|
2165
|
-
"confirmUnpublish": "Despublicar todos os eventos, participantes e programação"
|
|
2166
|
-
"timeZoneNotSetTitle": "__TODO__",
|
|
2167
|
-
"timeZoneNotSetBody": "__TODO__",
|
|
2168
|
-
"setTimeZone": "__TODO__"
|
|
2093
|
+
"confirmUnpublish": "Despublicar todos os eventos, participantes e programação"
|
|
2169
2094
|
},
|
|
2170
2095
|
"cal": "Calendário",
|
|
2171
2096
|
"tpl": "Modelos",
|
|
@@ -2710,14 +2635,7 @@
|
|
|
2710
2635
|
"policyUnsetHint": "Selecione primeiro uma política de pontos de ranking para habilitar o recálculo.",
|
|
2711
2636
|
"pipelineOff": "O pipeline de rankings não está configurado no servidor (RANKINGS_PIPELINE_URL). Nada foi recalculado.",
|
|
2712
2637
|
"failed": "Não foi possível recalcular os rankings.",
|
|
2713
|
-
"result": "Recalculados {{republished}}/{{tournaments}} torneios; gerado(s) {{snapshots}} snapshot(s)."
|
|
2714
|
-
"unprocessed": "__TODO__",
|
|
2715
|
-
"unprocessedRunning": "__TODO__",
|
|
2716
|
-
"fromDateLabel": "__TODO__",
|
|
2717
|
-
"fromDateRequired": "__TODO__",
|
|
2718
|
-
"rerunFromDate": "__TODO__",
|
|
2719
|
-
"rerunRunning": "__TODO__",
|
|
2720
|
-
"bulkNone": "__TODO__"
|
|
2638
|
+
"result": "Recalculados {{republished}}/{{tournaments}} torneios; gerado(s) {{snapshots}} snapshot(s)."
|
|
2721
2639
|
}
|
|
2722
2640
|
},
|
|
2723
2641
|
"notLoggedInTitle": "Você não está conectado",
|
|
@@ -2798,8 +2716,7 @@
|
|
|
2798
2716
|
"crowd": "PÚBLICO",
|
|
2799
2717
|
"anon": "ANÔNIMO",
|
|
2800
2718
|
"verified": "VERIFICADO",
|
|
2801
|
-
"nominated": "NOMEADO"
|
|
2802
|
-
"scorekeeper": "__TODO__"
|
|
2719
|
+
"nominated": "NOMEADO"
|
|
2803
2720
|
},
|
|
2804
2721
|
"reason": {
|
|
2805
2722
|
"signInRequired": "Login necessário para ser nomeado",
|
|
@@ -2807,20 +2724,13 @@
|
|
|
2807
2724
|
},
|
|
2808
2725
|
"toast": {
|
|
2809
2726
|
"nominateFirst": "Nomeie um marcador verificado antes de definir um resultado delegado.",
|
|
2810
|
-
"noOutcomeToConfirm": "Nenhum resultado delegado para confirmar nesta partida."
|
|
2811
|
-
"noScorekeeperCandidates": "__TODO__",
|
|
2812
|
-
"acceptedLive": "__TODO__"
|
|
2727
|
+
"noOutcomeToConfirm": "Nenhum resultado delegado para confirmar nesta partida."
|
|
2813
2728
|
},
|
|
2814
2729
|
"tooltip": {
|
|
2815
2730
|
"liveTracker": "Placar reportado via rastreador ao vivo",
|
|
2816
2731
|
"unconfirmed": "Placar delegado não confirmado — confirme para torná-lo oficial",
|
|
2817
2732
|
"unconfirmedAria": "Placar delegado não confirmado aguardando confirmação"
|
|
2818
|
-
}
|
|
2819
|
-
"accept": "__TODO__",
|
|
2820
|
-
"nominateScorekeeper": "__TODO__",
|
|
2821
|
-
"removeScorekeeper": "__TODO__",
|
|
2822
|
-
"approveScorekeeper": "__TODO__",
|
|
2823
|
-
"removeScorekeeperApproval": "__TODO__"
|
|
2733
|
+
}
|
|
2824
2734
|
},
|
|
2825
2735
|
"providerSetup": {
|
|
2826
2736
|
"wizardTitle": "Configure seu provedor",
|
|
@@ -2868,10 +2778,5 @@
|
|
|
2868
2778
|
"privacyApplyFailed": "Não foi possível aplicar a política de privacidade aos torneios existentes.",
|
|
2869
2779
|
"privacyApplyResult": "Política de privacidade aplicada a {{attached}} torneio(s); {{already}} já a tinham; {{failed}} falharam."
|
|
2870
2780
|
},
|
|
2871
|
-
"cns": "Console"
|
|
2872
|
-
"session": {
|
|
2873
|
-
"expiredMessage": "__TODO__",
|
|
2874
|
-
"logInAgain": "__TODO__"
|
|
2875
|
-
},
|
|
2876
|
-
"overwrite": "__TODO__"
|
|
2781
|
+
"cns": "Console"
|
|
2877
2782
|
}
|
package/dist/locales/zh-CN.json
CHANGED
|
@@ -945,59 +945,7 @@
|
|
|
945
945
|
"structure": "按结构",
|
|
946
946
|
"time": "按时间"
|
|
947
947
|
},
|
|
948
|
-
"showCompleted": "显示已完成"
|
|
949
|
-
"callToCourt": "__TODO__",
|
|
950
|
-
"now": "__TODO__",
|
|
951
|
-
"nowRowActions": "__TODO__",
|
|
952
|
-
"status": "__TODO__",
|
|
953
|
-
"suspendAll": "__TODO__",
|
|
954
|
-
"resumeAll": "__TODO__",
|
|
955
|
-
"startAll": "__TODO__",
|
|
956
|
-
"rescheduleAll": "__TODO__",
|
|
957
|
-
"unscheduleAll": "__TODO__",
|
|
958
|
-
"rescheduleNowTitle": "__TODO__",
|
|
959
|
-
"chooseDate": "__TODO__",
|
|
960
|
-
"chooseTime": "__TODO__",
|
|
961
|
-
"selectAll": "__TODO__",
|
|
962
|
-
"selectNone": "__TODO__",
|
|
963
|
-
"reschedule": "__TODO__",
|
|
964
|
-
"shift": "__TODO__",
|
|
965
|
-
"shiftCourtsTitle": "__TODO__",
|
|
966
|
-
"shiftRows": "__TODO__",
|
|
967
|
-
"noActiveMatches": "__TODO__",
|
|
968
|
-
"startOnDropTitle": "__TODO__",
|
|
969
|
-
"startOnDropPrompt": "__TODO__",
|
|
970
|
-
"unscheduleAllTitle": "__TODO__",
|
|
971
|
-
"unscheduleAllConfirm": "__TODO__",
|
|
972
|
-
"plan": {
|
|
973
|
-
"badge": "__TODO__",
|
|
974
|
-
"empty": "__TODO__",
|
|
975
|
-
"create": "__TODO__",
|
|
976
|
-
"rename": "__TODO__",
|
|
977
|
-
"nameLabel": "__TODO__",
|
|
978
|
-
"duplicate": "__TODO__",
|
|
979
|
-
"copyName": "__TODO__",
|
|
980
|
-
"summary": "__TODO__",
|
|
981
|
-
"completedLocked": "__TODO__",
|
|
982
|
-
"conflictTip": "__TODO__",
|
|
983
|
-
"new": "__TODO__",
|
|
984
|
-
"delete": "__TODO__",
|
|
985
|
-
"makeOfficial": "__TODO__",
|
|
986
|
-
"rebase": "__TODO__",
|
|
987
|
-
"outOfDate": "__TODO__",
|
|
988
|
-
"outOfDateTip": "__TODO__",
|
|
989
|
-
"deleteTitle": "__TODO__",
|
|
990
|
-
"deleteQuery": "__TODO__",
|
|
991
|
-
"commitTitle": "__TODO__",
|
|
992
|
-
"commitQuery": "__TODO__",
|
|
993
|
-
"commitSkip": "__TODO__",
|
|
994
|
-
"commitDrift": "__TODO__",
|
|
995
|
-
"applied": "__TODO__",
|
|
996
|
-
"createFailed": "__TODO__",
|
|
997
|
-
"applyFailed": "__TODO__",
|
|
998
|
-
"updateFailed": "__TODO__",
|
|
999
|
-
"defaultName": "__TODO__"
|
|
1000
|
-
}
|
|
948
|
+
"showCompleted": "显示已完成"
|
|
1001
949
|
},
|
|
1002
950
|
"penalties": {
|
|
1003
951
|
"fail2signout": "未签退",
|
|
@@ -1036,8 +984,7 @@
|
|
|
1036
984
|
"dismiss": "关闭",
|
|
1037
985
|
"iSavedIt": "我已保存",
|
|
1038
986
|
"remove": "移除",
|
|
1039
|
-
"continueAndUnschedule": "继续并取消排期"
|
|
1040
|
-
"noScore": "__TODO__"
|
|
987
|
+
"continueAndUnschedule": "继续并取消排期"
|
|
1041
988
|
},
|
|
1042
989
|
"modals": {
|
|
1043
990
|
"deleteEvents": {
|
|
@@ -1671,11 +1618,6 @@
|
|
|
1671
1618
|
"pickTimes": "设置开始和结束时间。",
|
|
1672
1619
|
"invalidWindow": "开始时间必须早于结束时间。",
|
|
1673
1620
|
"conflictWarning": "注册已添加 — 参赛者在此时段内另有安排。"
|
|
1674
|
-
},
|
|
1675
|
-
"editDrawNames": {
|
|
1676
|
-
"title": "__TODO__",
|
|
1677
|
-
"minChars": "__TODO__",
|
|
1678
|
-
"drawRenamed": "__TODO__"
|
|
1679
1621
|
}
|
|
1680
1622
|
},
|
|
1681
1623
|
"dashboard": {
|
|
@@ -1851,9 +1793,7 @@
|
|
|
1851
1793
|
"activeDatesPromptAction": "设置活动日期",
|
|
1852
1794
|
"cannotDeleteTournament": "无法删除赛事",
|
|
1853
1795
|
"tournamentNotEnded": "无法在赛事结束日期之前删除赛事。请先将结束日期设置为过去的日期,然后再删除。",
|
|
1854
|
-
"deleteForbidden": "您无权删除此赛事。"
|
|
1855
|
-
"matchUpScoredElsewhere": "__TODO__",
|
|
1856
|
-
"overwriteRemoteScore": "__TODO__"
|
|
1796
|
+
"deleteForbidden": "您无权删除此赛事。"
|
|
1857
1797
|
},
|
|
1858
1798
|
"loginMenu": {
|
|
1859
1799
|
"authorization": "授权",
|
|
@@ -2050,19 +1990,7 @@
|
|
|
2050
1990
|
"opponents": "对手",
|
|
2051
1991
|
"allDates": "所有日期",
|
|
2052
1992
|
"today": "今天",
|
|
2053
|
-
"noDate": "无日期"
|
|
2054
|
-
"suspended": "__TODO__",
|
|
2055
|
-
"notReady": "__TODO__",
|
|
2056
|
-
"live": "__TODO__",
|
|
2057
|
-
"abandoned": "__TODO__",
|
|
2058
|
-
"cancelled": "__TODO__",
|
|
2059
|
-
"allProfiles": "__TODO__",
|
|
2060
|
-
"competitive": "__TODO__",
|
|
2061
|
-
"routine": "__TODO__",
|
|
2062
|
-
"decisive": "__TODO__",
|
|
2063
|
-
"walkover": "__TODO__",
|
|
2064
|
-
"showTodayView": "__TODO__",
|
|
2065
|
-
"showCompetitivenessView": "__TODO__"
|
|
1993
|
+
"noDate": "无日期"
|
|
2066
1994
|
},
|
|
2067
1995
|
"schedule": {
|
|
2068
1996
|
"searchParticipants": "搜索参赛者",
|
|
@@ -2324,10 +2252,7 @@
|
|
|
2324
2252
|
"defaultLanguage": "默认语言",
|
|
2325
2253
|
"publishParticipants": "发布参赛者",
|
|
2326
2254
|
"country": "国家",
|
|
2327
|
-
"cityState": "城市 / 省份"
|
|
2328
|
-
"timeZoneNotSetTitle": "__TODO__",
|
|
2329
|
-
"timeZoneNotSetBody": "__TODO__",
|
|
2330
|
-
"setTimeZone": "__TODO__"
|
|
2255
|
+
"cityState": "城市 / 省份"
|
|
2331
2256
|
},
|
|
2332
2257
|
"cal": "日历",
|
|
2333
2258
|
"tpl": "模板",
|
|
@@ -2710,14 +2635,7 @@
|
|
|
2710
2635
|
"policyUnsetHint": "请先选择排名积分策略以启用重新计算。",
|
|
2711
2636
|
"pipelineOff": "服务器上未配置排名流水线(RANKINGS_PIPELINE_URL)。未进行任何重新计算。",
|
|
2712
2637
|
"failed": "无法重新计算排名。",
|
|
2713
|
-
"result": "已重新计算 {{republished}}/{{tournaments}} 项赛事;生成了 {{snapshots}} 个快照。"
|
|
2714
|
-
"unprocessed": "__TODO__",
|
|
2715
|
-
"unprocessedRunning": "__TODO__",
|
|
2716
|
-
"fromDateLabel": "__TODO__",
|
|
2717
|
-
"fromDateRequired": "__TODO__",
|
|
2718
|
-
"rerunFromDate": "__TODO__",
|
|
2719
|
-
"rerunRunning": "__TODO__",
|
|
2720
|
-
"bulkNone": "__TODO__"
|
|
2638
|
+
"result": "已重新计算 {{republished}}/{{tournaments}} 项赛事;生成了 {{snapshots}} 个快照。"
|
|
2721
2639
|
}
|
|
2722
2640
|
},
|
|
2723
2641
|
"notLoggedInTitle": "您尚未登录",
|
|
@@ -2798,8 +2716,7 @@
|
|
|
2798
2716
|
"crowd": "众包",
|
|
2799
2717
|
"anon": "匿名",
|
|
2800
2718
|
"verified": "已验证",
|
|
2801
|
-
"nominated": "已提名"
|
|
2802
|
-
"scorekeeper": "__TODO__"
|
|
2719
|
+
"nominated": "已提名"
|
|
2803
2720
|
},
|
|
2804
2721
|
"reason": {
|
|
2805
2722
|
"signInRequired": "需要登录才能被提名",
|
|
@@ -2807,20 +2724,13 @@
|
|
|
2807
2724
|
},
|
|
2808
2725
|
"toast": {
|
|
2809
2726
|
"nominateFirst": "在设置委托结果前,请先提名一位已验证的计分员。",
|
|
2810
|
-
"noOutcomeToConfirm": "此比赛没有可确认的委托结果。"
|
|
2811
|
-
"noScorekeeperCandidates": "__TODO__",
|
|
2812
|
-
"acceptedLive": "__TODO__"
|
|
2727
|
+
"noOutcomeToConfirm": "此比赛没有可确认的委托结果。"
|
|
2813
2728
|
},
|
|
2814
2729
|
"tooltip": {
|
|
2815
2730
|
"liveTracker": "通过实时跟踪器上报比分",
|
|
2816
2731
|
"unconfirmed": "未确认的委托比分 — 确认后即为官方比分",
|
|
2817
2732
|
"unconfirmedAria": "未确认的委托比分,等待确认"
|
|
2818
|
-
}
|
|
2819
|
-
"accept": "__TODO__",
|
|
2820
|
-
"nominateScorekeeper": "__TODO__",
|
|
2821
|
-
"removeScorekeeper": "__TODO__",
|
|
2822
|
-
"approveScorekeeper": "__TODO__",
|
|
2823
|
-
"removeScorekeeperApproval": "__TODO__"
|
|
2733
|
+
}
|
|
2824
2734
|
},
|
|
2825
2735
|
"providerSetup": {
|
|
2826
2736
|
"wizardTitle": "设置您的服务商",
|
|
@@ -2868,10 +2778,5 @@
|
|
|
2868
2778
|
"privacyApplyFailed": "无法将隐私策略应用到现有赛事。",
|
|
2869
2779
|
"privacyApplyResult": "隐私策略已应用到 {{attached}} 项赛事;{{already}} 项已有;{{failed}} 项失败。"
|
|
2870
2780
|
},
|
|
2871
|
-
"cns": "控制台"
|
|
2872
|
-
"session": {
|
|
2873
|
-
"expiredMessage": "__TODO__",
|
|
2874
|
-
"logInAgain": "__TODO__"
|
|
2875
|
-
},
|
|
2876
|
-
"overwrite": "__TODO__"
|
|
2781
|
+
"cns": "控制台"
|
|
2877
2782
|
}
|
package/dist/manifest.gen.d.ts
CHANGED
|
@@ -9,6 +9,24 @@
|
|
|
9
9
|
*
|
|
10
10
|
* Invocation: `node dist/manifest.gen.js` (chained after `tsc` in
|
|
11
11
|
* `pnpm build`).
|
|
12
|
+
*
|
|
13
|
+
* ## Two trees, deliberately
|
|
14
|
+
*
|
|
15
|
+
* `copy-locales` strips `__TODO__` on the way to `dist`, because a key valued
|
|
16
|
+
* `__TODO__` renders literally rather than falling back to English (see that
|
|
17
|
+
* script's header). So the two halves of an entry read from different trees:
|
|
18
|
+
*
|
|
19
|
+
* - `version` (SHA256) and `size` describe **dist** — they must match the bytes
|
|
20
|
+
* CFS actually serves, or the client's cache key is a lie.
|
|
21
|
+
* - `keyCount` and `completeness` describe **src** — they are the translation
|
|
22
|
+
* metric, and counting the stripped tree would report every locale as 100%
|
|
23
|
+
* complete the moment the sentinel stopped shipping. The number that says
|
|
24
|
+
* "89 strings still need a translator" has to come from where the sentinel
|
|
25
|
+
* still lives.
|
|
26
|
+
*
|
|
27
|
+
* `keyCount` is therefore the *translatable* key count, which is ≥ the number of
|
|
28
|
+
* keys present in the served file. That is the useful reading of it, but it does
|
|
29
|
+
* mean keyCount cannot be used to validate a downloaded locale's key count.
|
|
12
30
|
*/
|
|
13
31
|
export interface ManifestLocaleEntry {
|
|
14
32
|
/** BCP47 language tag (e.g. 'en', 'pt-BR', 'zh-CN'). */
|
package/dist/manifest.gen.js
CHANGED
|
@@ -9,9 +9,27 @@
|
|
|
9
9
|
*
|
|
10
10
|
* Invocation: `node dist/manifest.gen.js` (chained after `tsc` in
|
|
11
11
|
* `pnpm build`).
|
|
12
|
+
*
|
|
13
|
+
* ## Two trees, deliberately
|
|
14
|
+
*
|
|
15
|
+
* `copy-locales` strips `__TODO__` on the way to `dist`, because a key valued
|
|
16
|
+
* `__TODO__` renders literally rather than falling back to English (see that
|
|
17
|
+
* script's header). So the two halves of an entry read from different trees:
|
|
18
|
+
*
|
|
19
|
+
* - `version` (SHA256) and `size` describe **dist** — they must match the bytes
|
|
20
|
+
* CFS actually serves, or the client's cache key is a lie.
|
|
21
|
+
* - `keyCount` and `completeness` describe **src** — they are the translation
|
|
22
|
+
* metric, and counting the stripped tree would report every locale as 100%
|
|
23
|
+
* complete the moment the sentinel stopped shipping. The number that says
|
|
24
|
+
* "89 strings still need a translator" has to come from where the sentinel
|
|
25
|
+
* still lives.
|
|
26
|
+
*
|
|
27
|
+
* `keyCount` is therefore the *translatable* key count, which is ≥ the number of
|
|
28
|
+
* keys present in the served file. That is the useful reading of it, but it does
|
|
29
|
+
* mean keyCount cannot be used to validate a downloaded locale's key count.
|
|
12
30
|
*/
|
|
13
31
|
import { createHash } from 'node:crypto';
|
|
14
|
-
import { readFileSync, readdirSync, writeFileSync, statSync } from 'node:fs';
|
|
32
|
+
import { readFileSync, readdirSync, writeFileSync, statSync, existsSync } from 'node:fs';
|
|
15
33
|
import { fileURLToPath } from 'node:url';
|
|
16
34
|
import { dirname, join } from 'node:path';
|
|
17
35
|
import { localeLabels } from './locale-labels.js';
|
|
@@ -54,11 +72,18 @@ function build() {
|
|
|
54
72
|
console.warn(`manifest.gen: locale "${code}" has no entry in locale-labels.ts — skipping`);
|
|
55
73
|
continue;
|
|
56
74
|
}
|
|
75
|
+
// Hash + size describe the SERVED bytes …
|
|
57
76
|
const fullPath = join(localesDir, file);
|
|
58
77
|
const raw = readFileSync(fullPath, 'utf8');
|
|
59
|
-
const parsed = JSON.parse(raw);
|
|
60
78
|
const sha = createHash('sha256').update(raw).digest('hex');
|
|
61
79
|
const size = statSync(fullPath).size;
|
|
80
|
+
// … while the translation metric is read from src, where `__TODO__` still
|
|
81
|
+
// lives. Fall back to the dist copy if src is unavailable (e.g. a consumer
|
|
82
|
+
// running the generator against an extracted package) rather than silently
|
|
83
|
+
// reporting 100% complete.
|
|
84
|
+
const srcPath = join(__dirname, '..', 'src', 'locales', file);
|
|
85
|
+
const metricSource = existsSync(srcPath) ? srcPath : fullPath;
|
|
86
|
+
const parsed = JSON.parse(readFileSync(metricSource, 'utf8'));
|
|
62
87
|
const keyCount = countLeafKeys(parsed);
|
|
63
88
|
const todos = countTodos(parsed);
|
|
64
89
|
const completeness = keyCount > 0 ? 1 - todos / keyCount : 1;
|