@courthive/i18n 0.4.3 → 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 -76
- package/dist/locales/cs.json +10 -76
- package/dist/locales/de.json +10 -76
- package/dist/locales/en.json +145 -26
- package/dist/locales/es.json +10 -76
- package/dist/locales/fr.json +10 -76
- package/dist/locales/hr.json +10 -76
- package/dist/locales/pt-BR.json +10 -76
- package/dist/locales/zh-CN.json +10 -76
- 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,30 +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__"
|
|
952
|
+
"showCompleted": "Prikaži dovršene"
|
|
976
953
|
},
|
|
977
954
|
"penalties": {
|
|
978
955
|
"fail2signout": "Propust odjave",
|
|
@@ -1011,8 +988,7 @@
|
|
|
1011
988
|
"dismiss": "Odbaci",
|
|
1012
989
|
"iSavedIt": "Spremio sam",
|
|
1013
990
|
"remove": "Ukloni",
|
|
1014
|
-
"continueAndUnschedule": "Nastavi i ukloni iz rasporeda"
|
|
1015
|
-
"noScore": "__TODO__"
|
|
991
|
+
"continueAndUnschedule": "Nastavi i ukloni iz rasporeda"
|
|
1016
992
|
},
|
|
1017
993
|
"modals": {
|
|
1018
994
|
"deleteEvents": {
|
|
@@ -1646,11 +1622,6 @@
|
|
|
1646
1622
|
"pickTimes": "Postavite i vrijeme početka i završetka.",
|
|
1647
1623
|
"invalidWindow": "Vrijeme početka mora biti prije vremena završetka.",
|
|
1648
1624
|
"conflictWarning": "Prijava dodana — sudionik ima drugu obvezu tijekom ovog termina."
|
|
1649
|
-
},
|
|
1650
|
-
"editDrawNames": {
|
|
1651
|
-
"title": "__TODO__",
|
|
1652
|
-
"minChars": "__TODO__",
|
|
1653
|
-
"drawRenamed": "__TODO__"
|
|
1654
1625
|
}
|
|
1655
1626
|
},
|
|
1656
1627
|
"dashboard": {
|
|
@@ -1826,9 +1797,7 @@
|
|
|
1826
1797
|
"activeDatesPromptAction": "Postavi aktivne datume",
|
|
1827
1798
|
"cannotDeleteTournament": "Nije moguće izbrisati turnir",
|
|
1828
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.",
|
|
1829
|
-
"deleteForbidden": "Niste ovlašteni za brisanje ovog turnira."
|
|
1830
|
-
"matchUpScoredElsewhere": "__TODO__",
|
|
1831
|
-
"overwriteRemoteScore": "__TODO__"
|
|
1800
|
+
"deleteForbidden": "Niste ovlašteni za brisanje ovog turnira."
|
|
1832
1801
|
},
|
|
1833
1802
|
"loginMenu": {
|
|
1834
1803
|
"authorization": "Autorizacija",
|
|
@@ -2025,19 +1994,7 @@
|
|
|
2025
1994
|
"singles": "Pojedinačno",
|
|
2026
1995
|
"doubles": "Parovi",
|
|
2027
1996
|
"team": "Ekipa",
|
|
2028
|
-
"opponents": "Protivnici"
|
|
2029
|
-
"suspended": "__TODO__",
|
|
2030
|
-
"notReady": "__TODO__",
|
|
2031
|
-
"live": "__TODO__",
|
|
2032
|
-
"abandoned": "__TODO__",
|
|
2033
|
-
"cancelled": "__TODO__",
|
|
2034
|
-
"allProfiles": "__TODO__",
|
|
2035
|
-
"competitive": "__TODO__",
|
|
2036
|
-
"routine": "__TODO__",
|
|
2037
|
-
"decisive": "__TODO__",
|
|
2038
|
-
"walkover": "__TODO__",
|
|
2039
|
-
"showTodayView": "__TODO__",
|
|
2040
|
-
"showCompetitivenessView": "__TODO__"
|
|
1997
|
+
"opponents": "Protivnici"
|
|
2041
1998
|
},
|
|
2042
1999
|
"schedule": {
|
|
2043
2000
|
"searchParticipants": "Pretraži sudionike",
|
|
@@ -2299,10 +2256,7 @@
|
|
|
2299
2256
|
"defaultLanguage": "Zadani jezik",
|
|
2300
2257
|
"publishParticipants": "Objavi sudionike",
|
|
2301
2258
|
"country": "Država",
|
|
2302
|
-
"cityState": "Grad / Županija"
|
|
2303
|
-
"timeZoneNotSetTitle": "__TODO__",
|
|
2304
|
-
"timeZoneNotSetBody": "__TODO__",
|
|
2305
|
-
"setTimeZone": "__TODO__"
|
|
2259
|
+
"cityState": "Grad / Županija"
|
|
2306
2260
|
},
|
|
2307
2261
|
"formatWizard": {
|
|
2308
2262
|
"title": "Čarobnjak formata",
|
|
@@ -2681,14 +2635,7 @@
|
|
|
2681
2635
|
"policyUnsetHint": "Prvo odaberite pravila bodova rangiranja za omogućavanje ponovnog izračuna.",
|
|
2682
2636
|
"pipelineOff": "Cjevovod rangiranja nije konfiguriran na poslužitelju (RANKINGS_PIPELINE_URL). Ništa nije ponovno izračunato.",
|
|
2683
2637
|
"failed": "Nije moguće ponovno izračunati rangiranja.",
|
|
2684
|
-
"result": "Ponovno izračunato {{republished}}/{{tournaments}} turnira; generirano {{snapshots}} snimaka."
|
|
2685
|
-
"unprocessed": "__TODO__",
|
|
2686
|
-
"unprocessedRunning": "__TODO__",
|
|
2687
|
-
"fromDateLabel": "__TODO__",
|
|
2688
|
-
"fromDateRequired": "__TODO__",
|
|
2689
|
-
"rerunFromDate": "__TODO__",
|
|
2690
|
-
"rerunRunning": "__TODO__",
|
|
2691
|
-
"bulkNone": "__TODO__"
|
|
2638
|
+
"result": "Ponovno izračunato {{republished}}/{{tournaments}} turnira; generirano {{snapshots}} snimaka."
|
|
2692
2639
|
}
|
|
2693
2640
|
},
|
|
2694
2641
|
"notLoggedInTitle": "Niste prijavljeni",
|
|
@@ -2769,8 +2716,7 @@
|
|
|
2769
2716
|
"crowd": "PUBLIKA",
|
|
2770
2717
|
"anon": "ANONIMNO",
|
|
2771
2718
|
"verified": "POTVRĐENO",
|
|
2772
|
-
"nominated": "NOMINIRAN"
|
|
2773
|
-
"scorekeeper": "__TODO__"
|
|
2719
|
+
"nominated": "NOMINIRAN"
|
|
2774
2720
|
},
|
|
2775
2721
|
"reason": {
|
|
2776
2722
|
"signInRequired": "Za nominaciju je potrebna prijava",
|
|
@@ -2778,20 +2724,13 @@
|
|
|
2778
2724
|
},
|
|
2779
2725
|
"toast": {
|
|
2780
2726
|
"nominateFirst": "Nominirajte potvrđenog zapisničara prije postavljanja delegiranog ishoda.",
|
|
2781
|
-
"noOutcomeToConfirm": "Nema delegiranog ishoda za potvrdu na ovom meču."
|
|
2782
|
-
"noScorekeeperCandidates": "__TODO__",
|
|
2783
|
-
"acceptedLive": "__TODO__"
|
|
2727
|
+
"noOutcomeToConfirm": "Nema delegiranog ishoda za potvrdu na ovom meču."
|
|
2784
2728
|
},
|
|
2785
2729
|
"tooltip": {
|
|
2786
2730
|
"liveTracker": "Rezultat prijavljen putem pratitelja uživo",
|
|
2787
2731
|
"unconfirmed": "Nepotvrđeni delegirani rezultat — potvrdite da postane službeni",
|
|
2788
2732
|
"unconfirmedAria": "Nepotvrđeni delegirani rezultat čeka potvrdu"
|
|
2789
|
-
}
|
|
2790
|
-
"accept": "__TODO__",
|
|
2791
|
-
"nominateScorekeeper": "__TODO__",
|
|
2792
|
-
"removeScorekeeper": "__TODO__",
|
|
2793
|
-
"approveScorekeeper": "__TODO__",
|
|
2794
|
-
"removeScorekeeperApproval": "__TODO__"
|
|
2733
|
+
}
|
|
2795
2734
|
},
|
|
2796
2735
|
"providerSetup": {
|
|
2797
2736
|
"wizardTitle": "Postavite svog pružatelja",
|
|
@@ -2839,10 +2778,5 @@
|
|
|
2839
2778
|
"privacyApplyFailed": "Nije moguće primijeniti pravila privatnosti na postojeće turnire.",
|
|
2840
2779
|
"privacyApplyResult": "Pravila privatnosti primijenjena na {{attached}} turnira; {{already}} ih je već imalo; {{failed}} nije uspjelo."
|
|
2841
2780
|
},
|
|
2842
|
-
"cns": "Konzola"
|
|
2843
|
-
"session": {
|
|
2844
|
-
"expiredMessage": "__TODO__",
|
|
2845
|
-
"logInAgain": "__TODO__"
|
|
2846
|
-
},
|
|
2847
|
-
"overwrite": "__TODO__"
|
|
2781
|
+
"cns": "Konzola"
|
|
2848
2782
|
}
|
package/dist/locales/pt-BR.json
CHANGED
|
@@ -783,30 +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__"
|
|
786
|
+
"showCompleted": "Mostrar concluídas"
|
|
810
787
|
},
|
|
811
788
|
"penalties": {
|
|
812
789
|
"fail2signout": "Não fez Check-Out",
|
|
@@ -845,8 +822,7 @@
|
|
|
845
822
|
"dismiss": "Dispensar",
|
|
846
823
|
"iSavedIt": "Eu salvei",
|
|
847
824
|
"remove": "Remover",
|
|
848
|
-
"continueAndUnschedule": "Continuar e desagendar"
|
|
849
|
-
"noScore": "__TODO__"
|
|
825
|
+
"continueAndUnschedule": "Continuar e desagendar"
|
|
850
826
|
},
|
|
851
827
|
"modals": {
|
|
852
828
|
"deleteEvents": {
|
|
@@ -1480,11 +1456,6 @@
|
|
|
1480
1456
|
"pickTimes": "Defina os horários de início e término.",
|
|
1481
1457
|
"invalidWindow": "O horário de início deve ser anterior ao de término.",
|
|
1482
1458
|
"conflictWarning": "Registro adicionado — o participante tem outro compromisso durante esta janela."
|
|
1483
|
-
},
|
|
1484
|
-
"editDrawNames": {
|
|
1485
|
-
"title": "__TODO__",
|
|
1486
|
-
"minChars": "__TODO__",
|
|
1487
|
-
"drawRenamed": "__TODO__"
|
|
1488
1459
|
}
|
|
1489
1460
|
},
|
|
1490
1461
|
"dashboard": {
|
|
@@ -1660,9 +1631,7 @@
|
|
|
1660
1631
|
"activeDatesPromptAction": "Definir datas ativas",
|
|
1661
1632
|
"cannotDeleteTournament": "Não é possível excluir o torneio",
|
|
1662
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.",
|
|
1663
|
-
"deleteForbidden": "Você não está autorizado a excluir este torneio."
|
|
1664
|
-
"matchUpScoredElsewhere": "__TODO__",
|
|
1665
|
-
"overwriteRemoteScore": "__TODO__"
|
|
1634
|
+
"deleteForbidden": "Você não está autorizado a excluir este torneio."
|
|
1666
1635
|
},
|
|
1667
1636
|
"loginMenu": {
|
|
1668
1637
|
"authorization": "Autorização",
|
|
@@ -1859,19 +1828,7 @@
|
|
|
1859
1828
|
"opponents": "Adversários",
|
|
1860
1829
|
"allDates": "Todas as datas",
|
|
1861
1830
|
"today": "Hoje",
|
|
1862
|
-
"noDate": "Sem data"
|
|
1863
|
-
"suspended": "__TODO__",
|
|
1864
|
-
"notReady": "__TODO__",
|
|
1865
|
-
"live": "__TODO__",
|
|
1866
|
-
"abandoned": "__TODO__",
|
|
1867
|
-
"cancelled": "__TODO__",
|
|
1868
|
-
"allProfiles": "__TODO__",
|
|
1869
|
-
"competitive": "__TODO__",
|
|
1870
|
-
"routine": "__TODO__",
|
|
1871
|
-
"decisive": "__TODO__",
|
|
1872
|
-
"walkover": "__TODO__",
|
|
1873
|
-
"showTodayView": "__TODO__",
|
|
1874
|
-
"showCompetitivenessView": "__TODO__"
|
|
1831
|
+
"noDate": "Sem data"
|
|
1875
1832
|
},
|
|
1876
1833
|
"schedule": {
|
|
1877
1834
|
"searchParticipants": "Buscar participantes",
|
|
@@ -2133,10 +2090,7 @@
|
|
|
2133
2090
|
"country": "País",
|
|
2134
2091
|
"cityState": "Cidade / Estado",
|
|
2135
2092
|
"unpublishTournament": "Despublicar Torneio",
|
|
2136
|
-
"confirmUnpublish": "Despublicar todos os eventos, participantes e programação"
|
|
2137
|
-
"timeZoneNotSetTitle": "__TODO__",
|
|
2138
|
-
"timeZoneNotSetBody": "__TODO__",
|
|
2139
|
-
"setTimeZone": "__TODO__"
|
|
2093
|
+
"confirmUnpublish": "Despublicar todos os eventos, participantes e programação"
|
|
2140
2094
|
},
|
|
2141
2095
|
"cal": "Calendário",
|
|
2142
2096
|
"tpl": "Modelos",
|
|
@@ -2681,14 +2635,7 @@
|
|
|
2681
2635
|
"policyUnsetHint": "Selecione primeiro uma política de pontos de ranking para habilitar o recálculo.",
|
|
2682
2636
|
"pipelineOff": "O pipeline de rankings não está configurado no servidor (RANKINGS_PIPELINE_URL). Nada foi recalculado.",
|
|
2683
2637
|
"failed": "Não foi possível recalcular os rankings.",
|
|
2684
|
-
"result": "Recalculados {{republished}}/{{tournaments}} torneios; gerado(s) {{snapshots}} snapshot(s)."
|
|
2685
|
-
"unprocessed": "__TODO__",
|
|
2686
|
-
"unprocessedRunning": "__TODO__",
|
|
2687
|
-
"fromDateLabel": "__TODO__",
|
|
2688
|
-
"fromDateRequired": "__TODO__",
|
|
2689
|
-
"rerunFromDate": "__TODO__",
|
|
2690
|
-
"rerunRunning": "__TODO__",
|
|
2691
|
-
"bulkNone": "__TODO__"
|
|
2638
|
+
"result": "Recalculados {{republished}}/{{tournaments}} torneios; gerado(s) {{snapshots}} snapshot(s)."
|
|
2692
2639
|
}
|
|
2693
2640
|
},
|
|
2694
2641
|
"notLoggedInTitle": "Você não está conectado",
|
|
@@ -2769,8 +2716,7 @@
|
|
|
2769
2716
|
"crowd": "PÚBLICO",
|
|
2770
2717
|
"anon": "ANÔNIMO",
|
|
2771
2718
|
"verified": "VERIFICADO",
|
|
2772
|
-
"nominated": "NOMEADO"
|
|
2773
|
-
"scorekeeper": "__TODO__"
|
|
2719
|
+
"nominated": "NOMEADO"
|
|
2774
2720
|
},
|
|
2775
2721
|
"reason": {
|
|
2776
2722
|
"signInRequired": "Login necessário para ser nomeado",
|
|
@@ -2778,20 +2724,13 @@
|
|
|
2778
2724
|
},
|
|
2779
2725
|
"toast": {
|
|
2780
2726
|
"nominateFirst": "Nomeie um marcador verificado antes de definir um resultado delegado.",
|
|
2781
|
-
"noOutcomeToConfirm": "Nenhum resultado delegado para confirmar nesta partida."
|
|
2782
|
-
"noScorekeeperCandidates": "__TODO__",
|
|
2783
|
-
"acceptedLive": "__TODO__"
|
|
2727
|
+
"noOutcomeToConfirm": "Nenhum resultado delegado para confirmar nesta partida."
|
|
2784
2728
|
},
|
|
2785
2729
|
"tooltip": {
|
|
2786
2730
|
"liveTracker": "Placar reportado via rastreador ao vivo",
|
|
2787
2731
|
"unconfirmed": "Placar delegado não confirmado — confirme para torná-lo oficial",
|
|
2788
2732
|
"unconfirmedAria": "Placar delegado não confirmado aguardando confirmação"
|
|
2789
|
-
}
|
|
2790
|
-
"accept": "__TODO__",
|
|
2791
|
-
"nominateScorekeeper": "__TODO__",
|
|
2792
|
-
"removeScorekeeper": "__TODO__",
|
|
2793
|
-
"approveScorekeeper": "__TODO__",
|
|
2794
|
-
"removeScorekeeperApproval": "__TODO__"
|
|
2733
|
+
}
|
|
2795
2734
|
},
|
|
2796
2735
|
"providerSetup": {
|
|
2797
2736
|
"wizardTitle": "Configure seu provedor",
|
|
@@ -2839,10 +2778,5 @@
|
|
|
2839
2778
|
"privacyApplyFailed": "Não foi possível aplicar a política de privacidade aos torneios existentes.",
|
|
2840
2779
|
"privacyApplyResult": "Política de privacidade aplicada a {{attached}} torneio(s); {{already}} já a tinham; {{failed}} falharam."
|
|
2841
2780
|
},
|
|
2842
|
-
"cns": "Console"
|
|
2843
|
-
"session": {
|
|
2844
|
-
"expiredMessage": "__TODO__",
|
|
2845
|
-
"logInAgain": "__TODO__"
|
|
2846
|
-
},
|
|
2847
|
-
"overwrite": "__TODO__"
|
|
2781
|
+
"cns": "Console"
|
|
2848
2782
|
}
|
package/dist/locales/zh-CN.json
CHANGED
|
@@ -945,30 +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__"
|
|
948
|
+
"showCompleted": "显示已完成"
|
|
972
949
|
},
|
|
973
950
|
"penalties": {
|
|
974
951
|
"fail2signout": "未签退",
|
|
@@ -1007,8 +984,7 @@
|
|
|
1007
984
|
"dismiss": "关闭",
|
|
1008
985
|
"iSavedIt": "我已保存",
|
|
1009
986
|
"remove": "移除",
|
|
1010
|
-
"continueAndUnschedule": "继续并取消排期"
|
|
1011
|
-
"noScore": "__TODO__"
|
|
987
|
+
"continueAndUnschedule": "继续并取消排期"
|
|
1012
988
|
},
|
|
1013
989
|
"modals": {
|
|
1014
990
|
"deleteEvents": {
|
|
@@ -1642,11 +1618,6 @@
|
|
|
1642
1618
|
"pickTimes": "设置开始和结束时间。",
|
|
1643
1619
|
"invalidWindow": "开始时间必须早于结束时间。",
|
|
1644
1620
|
"conflictWarning": "注册已添加 — 参赛者在此时段内另有安排。"
|
|
1645
|
-
},
|
|
1646
|
-
"editDrawNames": {
|
|
1647
|
-
"title": "__TODO__",
|
|
1648
|
-
"minChars": "__TODO__",
|
|
1649
|
-
"drawRenamed": "__TODO__"
|
|
1650
1621
|
}
|
|
1651
1622
|
},
|
|
1652
1623
|
"dashboard": {
|
|
@@ -1822,9 +1793,7 @@
|
|
|
1822
1793
|
"activeDatesPromptAction": "设置活动日期",
|
|
1823
1794
|
"cannotDeleteTournament": "无法删除赛事",
|
|
1824
1795
|
"tournamentNotEnded": "无法在赛事结束日期之前删除赛事。请先将结束日期设置为过去的日期,然后再删除。",
|
|
1825
|
-
"deleteForbidden": "您无权删除此赛事。"
|
|
1826
|
-
"matchUpScoredElsewhere": "__TODO__",
|
|
1827
|
-
"overwriteRemoteScore": "__TODO__"
|
|
1796
|
+
"deleteForbidden": "您无权删除此赛事。"
|
|
1828
1797
|
},
|
|
1829
1798
|
"loginMenu": {
|
|
1830
1799
|
"authorization": "授权",
|
|
@@ -2021,19 +1990,7 @@
|
|
|
2021
1990
|
"opponents": "对手",
|
|
2022
1991
|
"allDates": "所有日期",
|
|
2023
1992
|
"today": "今天",
|
|
2024
|
-
"noDate": "无日期"
|
|
2025
|
-
"suspended": "__TODO__",
|
|
2026
|
-
"notReady": "__TODO__",
|
|
2027
|
-
"live": "__TODO__",
|
|
2028
|
-
"abandoned": "__TODO__",
|
|
2029
|
-
"cancelled": "__TODO__",
|
|
2030
|
-
"allProfiles": "__TODO__",
|
|
2031
|
-
"competitive": "__TODO__",
|
|
2032
|
-
"routine": "__TODO__",
|
|
2033
|
-
"decisive": "__TODO__",
|
|
2034
|
-
"walkover": "__TODO__",
|
|
2035
|
-
"showTodayView": "__TODO__",
|
|
2036
|
-
"showCompetitivenessView": "__TODO__"
|
|
1993
|
+
"noDate": "无日期"
|
|
2037
1994
|
},
|
|
2038
1995
|
"schedule": {
|
|
2039
1996
|
"searchParticipants": "搜索参赛者",
|
|
@@ -2295,10 +2252,7 @@
|
|
|
2295
2252
|
"defaultLanguage": "默认语言",
|
|
2296
2253
|
"publishParticipants": "发布参赛者",
|
|
2297
2254
|
"country": "国家",
|
|
2298
|
-
"cityState": "城市 / 省份"
|
|
2299
|
-
"timeZoneNotSetTitle": "__TODO__",
|
|
2300
|
-
"timeZoneNotSetBody": "__TODO__",
|
|
2301
|
-
"setTimeZone": "__TODO__"
|
|
2255
|
+
"cityState": "城市 / 省份"
|
|
2302
2256
|
},
|
|
2303
2257
|
"cal": "日历",
|
|
2304
2258
|
"tpl": "模板",
|
|
@@ -2681,14 +2635,7 @@
|
|
|
2681
2635
|
"policyUnsetHint": "请先选择排名积分策略以启用重新计算。",
|
|
2682
2636
|
"pipelineOff": "服务器上未配置排名流水线(RANKINGS_PIPELINE_URL)。未进行任何重新计算。",
|
|
2683
2637
|
"failed": "无法重新计算排名。",
|
|
2684
|
-
"result": "已重新计算 {{republished}}/{{tournaments}} 项赛事;生成了 {{snapshots}} 个快照。"
|
|
2685
|
-
"unprocessed": "__TODO__",
|
|
2686
|
-
"unprocessedRunning": "__TODO__",
|
|
2687
|
-
"fromDateLabel": "__TODO__",
|
|
2688
|
-
"fromDateRequired": "__TODO__",
|
|
2689
|
-
"rerunFromDate": "__TODO__",
|
|
2690
|
-
"rerunRunning": "__TODO__",
|
|
2691
|
-
"bulkNone": "__TODO__"
|
|
2638
|
+
"result": "已重新计算 {{republished}}/{{tournaments}} 项赛事;生成了 {{snapshots}} 个快照。"
|
|
2692
2639
|
}
|
|
2693
2640
|
},
|
|
2694
2641
|
"notLoggedInTitle": "您尚未登录",
|
|
@@ -2769,8 +2716,7 @@
|
|
|
2769
2716
|
"crowd": "众包",
|
|
2770
2717
|
"anon": "匿名",
|
|
2771
2718
|
"verified": "已验证",
|
|
2772
|
-
"nominated": "已提名"
|
|
2773
|
-
"scorekeeper": "__TODO__"
|
|
2719
|
+
"nominated": "已提名"
|
|
2774
2720
|
},
|
|
2775
2721
|
"reason": {
|
|
2776
2722
|
"signInRequired": "需要登录才能被提名",
|
|
@@ -2778,20 +2724,13 @@
|
|
|
2778
2724
|
},
|
|
2779
2725
|
"toast": {
|
|
2780
2726
|
"nominateFirst": "在设置委托结果前,请先提名一位已验证的计分员。",
|
|
2781
|
-
"noOutcomeToConfirm": "此比赛没有可确认的委托结果。"
|
|
2782
|
-
"noScorekeeperCandidates": "__TODO__",
|
|
2783
|
-
"acceptedLive": "__TODO__"
|
|
2727
|
+
"noOutcomeToConfirm": "此比赛没有可确认的委托结果。"
|
|
2784
2728
|
},
|
|
2785
2729
|
"tooltip": {
|
|
2786
2730
|
"liveTracker": "通过实时跟踪器上报比分",
|
|
2787
2731
|
"unconfirmed": "未确认的委托比分 — 确认后即为官方比分",
|
|
2788
2732
|
"unconfirmedAria": "未确认的委托比分,等待确认"
|
|
2789
|
-
}
|
|
2790
|
-
"accept": "__TODO__",
|
|
2791
|
-
"nominateScorekeeper": "__TODO__",
|
|
2792
|
-
"removeScorekeeper": "__TODO__",
|
|
2793
|
-
"approveScorekeeper": "__TODO__",
|
|
2794
|
-
"removeScorekeeperApproval": "__TODO__"
|
|
2733
|
+
}
|
|
2795
2734
|
},
|
|
2796
2735
|
"providerSetup": {
|
|
2797
2736
|
"wizardTitle": "设置您的服务商",
|
|
@@ -2839,10 +2778,5 @@
|
|
|
2839
2778
|
"privacyApplyFailed": "无法将隐私策略应用到现有赛事。",
|
|
2840
2779
|
"privacyApplyResult": "隐私策略已应用到 {{attached}} 项赛事;{{already}} 项已有;{{failed}} 项失败。"
|
|
2841
2780
|
},
|
|
2842
|
-
"cns": "控制台"
|
|
2843
|
-
"session": {
|
|
2844
|
-
"expiredMessage": "__TODO__",
|
|
2845
|
-
"logInAgain": "__TODO__"
|
|
2846
|
-
},
|
|
2847
|
-
"overwrite": "__TODO__"
|
|
2781
|
+
"cns": "控制台"
|
|
2848
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;
|