-
Notifications
You must be signed in to change notification settings - Fork 43
/
Copy pathStrings.kt
905 lines (901 loc) · 46.6 KB
/
Strings.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
package ui.strings
import com.sdercolin.utaformatix.data.UtaFormatixDataVersion
import core.io.MusicXml.MUSIC_XML_VERSION
import ui.strings.Language.English
import ui.strings.Language.French
import ui.strings.Language.Japanese
import ui.strings.Language.Russian
import ui.strings.Language.SimplifiedChinese
enum class Strings(
val en: String,
val ja: String,
val zhCN: String,
val ru: String = en,
val fr: String = en,
) {
LanguageDisplayName(
en = English.displayName,
ja = Japanese.displayName,
zhCN = SimplifiedChinese.displayName,
ru = Russian.displayName,
fr = French.displayName,
),
ReportFeedbackTooltip(
en = "Send feedback",
ja = "フィードバックを送信",
zhCN = "提交反馈",
ru = "Отправить отзыв",
fr = "Envoyer vos retours",
),
FrequentlyAskedQuestionTooltip(
en = "Frequently Asked Questions",
ja = "よくある質問",
zhCN = "常见问题解答",
ru = "Часто задаваемые вопросы",
fr = "Questions Fréquemment Posées",
),
ImportProjectCaption(
en = "Import Project",
ja = "プロジェクトをインポート",
zhCN = "导入工程",
ru = "Импортирование проекта",
fr = "Importation de projet",
),
SelectOutputFormatCaption(
en = "Select Output Format",
ja = "出力形式を選ぶ",
zhCN = "选择输出格式",
ru = "Выбор выходного формата",
fr = "Sélectionner le Format de Sortie",
),
ConfigurationEditorCaption(
en = "Configuration",
ja = "設定",
zhCN = "设置",
ru = "Конфигурация",
fr = "Configuration",
),
ExportCaption(
en = "Export",
ja = "エクスポート",
zhCN = "导出",
ru = "Экспорт",
fr = "Exportation",
),
ExporterTitleSuccess(
en = "Process finished successfully.",
ja = "処理に成功しました。",
zhCN = "处理已完成。",
ru = "Процесс успешно завершен",
fr = "Processus terminé avec succès.",
),
LyricsTypeUnknown(
en = "Unknown",
ja = "不明",
zhCN = "未知",
ru = "Неизвестно",
fr = "Inconnu",
),
LyricsTypeRomajiCV(
en = "Romaji CV",
ja = "単独音(ローマ字)",
zhCN = "罗马字单独音",
ru = "Ромадзи CV",
fr = "Romaji CV",
),
LyricsTypeRomajiVCV(
en = "Romaji VCV",
ja = "連続音(ローマ字)",
zhCN = "罗马字连续音",
ru = "Ромадзи VCV",
fr = "Romaji VCV",
),
LyricsTypeKanaCV(
en = "Kana CV",
ja = "単独音(ひらがな)",
zhCN = "假名单独音",
ru = "Кана CV",
fr = "Kana CV",
),
LyricsTypeKanaVCV(
en = "Kana VCV",
ja = "連続音(ひらがな)",
zhCN = "假名连续音",
ru = "Кана VCV",
fr = "Kana VCV",
),
JapaneseLyricsConversion(
en = "Cleanup and convert lyrics (only for Japanese lyrics)",
ja = "歌詞のSuffix除去・変換(日本語歌詞のみ対応)",
zhCN = "清理并转换歌词(仅日语)",
ru = "Очистка и преобразование текстов (только для японских текстов)",
fr = "Nettoyage et conversion des paroles (seulement pour les paroles en japonais)",
),
FromLyricsTypeLabel(
en = "Original lyrics type (analysis result: {{type}})",
ja = "変換元の歌詞タイプを選択(分析結果:{{type}})",
zhCN = "原歌词类型(分析结果为:{{type}})",
ru = "Исходный тип текстов (результат анализа: {{type}})",
fr = "Type de paroles originales (résultat de l'analyse : {{type}})",
),
ToLyricsTypeLabel(
en = "Target lyrics type",
ja = "変換先の歌詞タイプを選択",
zhCN = "目标歌词类型",
ru = "Целевой тип текстов",
fr = "Type de paroles cible",
),
ChinesePinyinConversion(
en = "Convert lyrics in Chinese characters to Pinyin",
ja = "中国語歌詞(漢字)を Pinyin に変換",
zhCN = "将中文汉字歌词转换为拼音",
ru = "Преобразовать тексты на китайском языке в пиньинь",
fr = "Convertir les paroles en caractères chinois en pinyin",
),
LyricsReplacement(
en = "Replace lyrics",
ja = "歌詞を置き換える",
zhCN = "替换歌词",
ru = "Заменить тексты",
fr = "Remplacer les paroles",
),
LyricsReplacementDescription(
en = "Replace lyrics that pass the filter.\n- Presets are loaded according to original format and " +
"target format.\n- If you use \"{{regex}}\" as the \"{{matchType}}\", " +
"you can use placeholders like \"\$1\", \"$2\", etc. in \"{{to}}\" to fill in the captured groups.",
ja = "フィルターに合致する歌詞を置き換える。\n・一部のフォーマットではプリセットが自動的に適用されます。\n" +
"・「{{matchType}}」で「{{regex}}」使用する場合、「{{to}}」に「$1」、「$2」などのプレースホルダーを用いて、" +
"キャプチャされたグループを入れることができます。",
zhCN = "替换可通过过滤器的歌词。\n・转换部分格式时,预设将会被加载。\n・在使用「{{regex}}」的「{{matchType}}」时" +
",您可以在「{{to}}」中使用「$1」、「$2」等占位符来填充被捕获的组。",
ru = "Замените тексты, которые проходят фильтр.\n- Пресеты загружаются в соответсвии с " +
"исходным и целевым форматом.\n- Если вы используете \"{{regex}}\" в качестве " +
"\"{{matchType}}\", вы можете использовать заполнители типа \"\$1\", \"$2\", и т.д. " +
"в \"{{to}}\" для заполнения захваченных групп.",
fr = "Remplacez les paroles qui passent le filtre.\n- Les préréglages sont chargés en fonction " +
"du format d'origine et du format cible. Si vous utilisez \"{{regex}}\" comme \"{{matchType}}\", " +
"vous pouvez utiliser des caractères de remplacement comme \"\$1\", \"$2\", etc. dans \"{{to}}\" " +
"pour remplir les groupes capturés.",
),
LyricsReplacementItemLabel(
en = "#{{number}}",
ja = "#{{number}}",
zhCN = "#{{number}}",
ru = "#{{number}}",
fr = "#{{number}}",
),
LyricsReplacementAddItemButton(
en = "Add replacement rule",
ja = "置換ルールを追加",
zhCN = "添加替换规则",
ru = "Добавить правило переноса",
fr = "Ajouter une règle de remplacement",
),
LyricsReplacementFilterTypeLabel(
en = "Filter type",
ja = "フィルタータイプ",
zhCN = "过滤器类型",
ru = "Тип фильтра",
fr = "Type de filtre",
),
LyricsReplacementFilterTypeNone(
en = "None",
ja = "なし",
zhCN = "无",
ru = "Нет",
fr = "Aucun",
),
LyricsReplacementFilterTypeExact(
en = "Exact",
ja = "完全一致",
zhCN = "完全匹配",
ru = "Точный",
fr = "Exact",
),
LyricsReplacementFilterTypeContaining(
en = "Containing",
ja = "含む",
zhCN = "包含",
ru = "Содержащий",
fr = "Contenant",
),
LyricsReplacementFilterTypePrefix(
en = "Prefix",
ja = "前方一致",
zhCN = "前缀",
ru = "Префикс",
fr = "Préfixe",
),
LyricsReplacementFilterTypeSuffix(
en = "Suffix",
ja = "後方一致",
zhCN = "后缀",
ru = "Суффикс",
fr = "Suffixe",
),
LyricsReplacementFilterTypeRegex(
en = "Regex",
ja = "正規表現",
zhCN = "正则表达式",
ru = "Регулярное выражение",
fr = "Regex",
),
LyricsReplacementFilterTextLabel(
en = "Filter",
ja = "フィルター",
zhCN = "过滤器",
ru = "Фильтр",
fr = "Filtre",
),
LyricsReplacementMatchTypeLabel(
en = "Match type",
ja = "マッチタイプ",
zhCN = "匹配类型",
ru = "Тип совпадения",
fr = "Type de match",
),
LyricsReplacementMatchTypeAll(
en = "All",
ja = "全部",
zhCN = "全部",
ru = "Все",
fr = "Tout",
),
LyricsReplacementMatchTypeExact(
en = "Exact",
ja = "完全一致",
zhCN = "完全匹配",
ru = "Точный",
fr = "Exact",
),
LyricsReplacementMatchTypeRegex(
en = "Regex",
ja = "正規表現",
zhCN = "正则表达式",
ru = "Регулярное выражение",
fr = "Regex",
),
LyricsReplacementFromTextLabel(
en = "From",
ja = "置換元",
zhCN = "替换源",
ru = "Из",
fr = "De",
),
LyricsReplacementToTextLabel(
en = "To",
ja = "置換先",
zhCN = "替换为",
ru = "До",
fr = "À",
),
LyricsMapping(
en = "Map lyrics to lyrics or phonemes",
ja = "歌詞を歌詞または発音記号にマッピング",
zhCN = "将歌词映射到歌词或音素",
ru = "Сопоставление текстов с текстами или фонемами",
fr = "Mapper les paroles sur les paroles ou les phonèmes",
),
LyricsMappingDescription(
en = "Only lyrics that is completely same as the key will be mapped. ",
ja = "キーと完全一致する歌詞のみマッピングされます。",
zhCN = "只有与键完全相同的歌词才会被映射。",
ru = "Будут отображены только те тексты, которые полностью совпадают с ключом. ",
fr = "Seules les paroles qui sont complètement identiques à la clé seront mappées.",
),
LyricsMappingPreset(
en = "Preset",
ja = "プリセット",
zhCN = "预设",
ru = "Пресет",
fr = "Préréglage",
),
LyricsMappingPresetClear(
en = "Clear",
ja = "クリア",
zhCN = "清空",
ru = "Очистить",
fr = "Effacer",
),
LyricsMappingToPhonemes(
en = "Write as phonemes instead",
ja = "発音記号として書き出す",
zhCN = "写入到音素",
ru = "Записать вместо фонем",
fr = "Écrire comme phonèmes",
),
LyricsMappingMapPlaceholder(
en = "Write a mapping entry per line in the format of \"{from}={to}\".",
ja = "「{from}={to}」の形式で、一行に一つのマッピングエントリーを書き込んでください。",
zhCN = "请按照“{from}={to}”的格式,每行写入一个映射条目。",
ru = "Запишите запись отображения на строку в формате \"{from}={to}\".",
fr = "Écrivez une entrée de mappage par ligne au format \"{from}={to}\".",
),
PhonemesConversion(
en = "Convert phonemes",
ja = "発音記号を変換",
zhCN = "转换音素",
ru = "Конвертировать фонемы",
fr = "Convertir les phonèmes",
),
PhonemesConversionEnableMapping(
en = "Map phonemes",
ja = "発音記号をマッピング",
zhCN = "映射音素",
ru = "Отобразить фонемы",
fr = "Mapper les phonèmes",
),
PhonemesConversionEnableMappingDescription(
en = "Enable phonemes mapping with a customizable mapping table. If disabled, phonemes are copied as is.",
ja = "カスタマイズ可能なマッピングテーブルを使用して発音記号をマッピングします。無効にすると、発音記号はそのままコピーされます。",
zhCN = "使用可自定义的映射表映射音素。如果禁用,音素将被直接复制。",
ru = "Включить отображение фонем с помощью настраиваемой таблицы отображения. " +
"Если отключено, фонемы копируются как есть.",
fr = "Activer le mappage des phonèmes avec une table de mappage personnalisable. " +
"Si désactivé, les phonèmes sont copiés tels quels.",
),
PhonemesMappingPreset(
en = "Preset",
ja = "プリセット",
zhCN = "预设",
ru = "Пресет",
fr = "Préréglage",
),
PhonemesMappingPresetClear(
en = "Clear",
ja = "クリア",
zhCN = "清空",
ru = "Очистить",
fr = "Effacer",
),
PhonemesMappingMapPlaceholder(
en = "Write a mapping entry per line in the format of \"{from}={to}\". " +
"Whitespace \" \" can be used to combine multiple phonemes as a set.",
ja = "「{from}={to}」の形式で、一行に一つのマッピングエントリーを書き込んでください。" +
"複数の発音記号をセットとして扱う場合は、空白「 」を使用してください。",
zhCN = "请按照“{from}={to}”的格式,每行写入一个映射条目。空格“ ”可以用于将多个音素组合成一个集合。",
ru = "Запишите запись отображения на строку в формате \"{from}={to}\". " +
"Пробел \" \" можно использовать для объединения нескольких фонем в качестве набора.",
fr = "Écrivez une entrée de mappage par ligne au format \"{from}={to}\". " +
"L'espace blanc \" \" peut être utilisé pour combiner plusieurs phonèmes en un ensemble.",
),
ConvertPitchData(
en = "Convert pitch parameters",
ja = "ピッチパラメータを変換",
zhCN = "转换音高参数",
ru = "Конвертировать параметры питча",
fr = "Convertir les paramètres de hauteur",
),
ConvertPitchDataDescription(
en = "It may take some time to process with this option.",
ja = "処理に時間がかかることがあります。",
zhCN = "该选项可能会增加处理时间。",
ru = "Обработка с помощью этого параметра может занять некоторое время.",
fr = "Le traitement peut prendre un certain temps avec cette option.",
),
ProjectZoom(
en = "Zoom in/out project",
ja = "プロジェクトをズームイン・ズームアウト",
zhCN = "缩放工程",
ru = "Приблизить/отдалить проект",
fr = "Zoom avant/arrière du projet",
),
ProjectZoomDescription(
en = "Change Bpm and notes in parallel so that the actual singing speed is kept. For example," +
"with factor 2, 60 bpm becomes 120 bpm and all notes become twice the length",
ja = "実際の速度を変更しないようBpmやノートなどを同時に変更します。例えば、60 bmpの曲に因子2をかけると、" +
"120 bpm になり、すべてのノートの長さも二倍になります。",
zhCN = "在不改变实际曲速的前提下同时改变Bpm数值与音符长度。例如,在60 bpm的乐曲中使用2倍的缩放,则乐曲变为120bpm," +
"同时所有音符的长度也翻倍。",
ru = "Изменение частоты ударов в минуту и нот параллельно, чтобы сохранить фактическую скорость пения." +
" Например, с коэффициентом 2 60 ударов в минуту становятся 120 ударов в минуту," +
" и все ноты становятся в два раза длиннее",
fr = "Changez les bpm et les notes en parallèle afin de conserver la vitesse réelle du chant." +
" Par exemple, avec le facteur 2, 60 bpm devient 120 bpm," +
" et toutes les notes deviennent deux fois plus longues.",
),
ProjectZoomWarning(
en = "Current settings may be destructive because some time signatures have to be moved to measure heads.",
ja = "この設定ではプロジェクトを適切に変換できないことがあります。一部の拍子記号を小節の始まりに移動させることになります。",
zhCN = "该设定可能无法正确转换本工程。一部分的节拍记号将被移动到最近的小节的开始位置。",
ru = "Текущие настройки могут быть разрушительными," +
" поскольку для измерения головок необходимо переместить некоторые временные сигнатуры.",
fr = "Les paramètres actuels peuvent être destructeurs," +
" car certaines signatures temporelles seront déplacées au début de la mesure.",
),
ProjectZoomLabel(
en = "Factor",
ja = "因子",
zhCN = "系数",
ru = "Коэффицент",
fr = "Coefficient",
),
ProjectSplit(
en = "Split project",
ja = "プロジェクトを分割",
zhCN = "分割工程",
ru = "Разделить проект",
fr = "Diviser le projet",
),
ProjectSplitDescription(
en = "If the project has more tracks than the specified number, it will be split into multiple projects.",
ja = "プロジェクトのトラック数が指定した数より多い場合、複数のプロジェクトに分割されます。",
zhCN = "如果工程的轨道数超过指定的数量,它将被分割成多个工程。",
ru = "Если в проекте больше дорожек, чем указанное количество, он будет разделен на несколько проектов.",
fr = "Si le projet a plus de pistes que le nombre spécifié, il sera divisé en plusieurs projets.",
),
ProjectSplitMaxTrackCountLabel(
en = "Max track count",
ja = "最大トラック数",
zhCN = "最大轨道数",
ru = "Максимальное количество дорожек",
fr = "Nombre maximal de pistes",
),
NextButton(
en = "Next",
ja = "次へ",
zhCN = "下一步",
ru = "Далее",
fr = "Suivant",
),
ConfirmButton(
en = "OK",
ja = "OK",
zhCN = "确定",
ru = "ОК",
fr = "OK",
),
CancelButton(
en = "Cancel",
ja = "キャンセル",
zhCN = "取消",
ru = "Назад",
fr = "Annuler",
),
ReportButton(
en = "Report",
ja = "問題を報告",
zhCN = "提交报告",
ru = "Сообщить",
fr = "Signaler",
),
DoNotShownAgainButton(
en = "Don't show again",
ja = "次回から表示しない",
zhCN = "不再显示",
ru = "Больше не показывать",
fr = "Ne plus afficher",
),
ImportFileDescription(
en = "Drop files or Click to import",
ja = "ファイルをドロップするか、クリックしてインポート",
zhCN = "拖放文件或点击导入",
ru = "Перетащите файлы или нажмите, чтобы импортировать",
fr = "Déposer les fichiers ou Cliquer ici pour importer",
),
ImportFileSubDescription(
en = "Supported file types: VSQX, VPR, VSQ, MID, USTs," +
" USTX, CCS, MUSICXML, XML, SVP, S5P, DV, PPSF(NT), TSSLN, UFDATA",
ja = "サポートされているファイル形式:VSQX、VPR、VSQ、MID、UST(複数可)、" +
"USTX、CCS、MUSICXML、XML、SVP、S5P、DV、PPSF(NT)、TSSLN、UFDATA",
zhCN = "支持的文件类型:VSQX、VPR、VSQ、MID、UST(允许复数个)、" +
"USTX、CCS、MUSICXML、XML、SVP、S5P、DV、PPSF(NT)、TSSLN、UFDATA",
ru = "Поддерживаемые форматы файлов: VSQx, VPR, VSQ, MID, UST," +
" USTX, CCS, MusicXML, XML, SVP, S5P, DV, PPSF(NT), TSSLN, UFDATA",
fr = "Types de fichiers pris en charge : VSQX, VPR, VSQ, MID, USTs," +
" USTX, CCS, MUSICXML, XML, SVP, S5P, DV, PPSF(NT), TSSLN, UFDATA",
),
UnsupportedFileTypeImportError(
en = "Unsupported file type",
ja = "サポートされていないファイル形式です",
zhCN = "不支持的文件类型",
ru = "Неподдерживаемый формат файла",
fr = "Type de fichier non supporté",
),
UnsupportedLegacyPpsfError(
en = "Legacy ppsf file format is not supported (only ppsf for Piapro Studio NT is supported)",
ja = "レガシー ppsf ファイル形式はサポートされていません(Piapro Studio NTのみサポートされています)",
zhCN = "不支持旧版ppsf文件格式(仅支持 ppsf for Piapro Studio NT)",
ru = "Устаревший формат файла ppsf не поддерживается. (Поддерживается только ppsf от Piapro Studio NT)",
fr = "Le format de fichier ppsf hérité n'est pas pris en charge (seul ppsf pour Piapro Studio NT " +
"est pris en charge)",
),
MultipleFileImportError(
en = "Multiple files of {{format}} could not be imported in one go",
ja = "複数の{{format}}ファイルを一度にインポートすることはできません",
zhCN = "无法同时导入多个{{format}}文件",
ru = "Несколько файлов {{format}} не удалось импортировать за один раз",
fr = "Plusieurs fichiers de {{format}} n'ont pas pu être importés en une seule fois",
),
ImportErrorDialogTitle(
en = "Failed to import the project",
ja = "プロジェクトのインポートに失敗しました",
zhCN = "无法导入该工程",
ru = "Не удалось импортировать проект",
fr = "Échec de l'importation du projet",
),
ProcessErrorDialogTitle(
en = "An error happened during the process",
ja = "処理中に下記のエラーが発生しました",
zhCN = "在处理中发生了以下错误",
ru = "Во время процесса произошла ошибка",
fr = "Une erreur s'est produite pendant le processus",
),
ErrorDialogDescription(
en = "If you find any problems, please help us collect error information" +
" for better performance of this application by submitting a feedback report.",
ja = "サービス向上のためにエラー情報を収集しております。問題を発見した場合、フィードバックにご協力をお願いします。",
zhCN = "如您在使用中发现问题,您可以向我们提交反馈表单。感谢您对本应用的改善所提供的帮助!",
ru = "Если вы обнаружите какие-либо проблемы, пожалуйста, помогите нам собрать информацию об ошибках" +
" для повышения производительности этого приложения, отправив отчет об обратной связи.",
fr = "Si vous rencontrez des problèmes, aidez-nous à collecter des informations sur les erreurs" +
" pour une meilleure performance de cette application en soumettant" +
" un rapport de vos retours. (SEULEMENT EN ANGLAIS)",
),
ReportUrl(
en = "https://forms.gle/3Es3ZomcYKNHWBvp6",
ja = "https://forms.gle/kDY9chZBjGATXqpE8",
zhCN = "https://forms.gle/nJVdrsfwMhbNXEYUA",
ru = "https://forms.gle/vTNUE78QzURB7YcBA",
fr = "https://forms.gle/3Es3ZomcYKNHWBvp6",
),
FaqUrl(
en = "https://gist.githubusercontent.com/sdercolin/4d835e7e201a39504f5321f67d254209/raw",
ja = "https://gist.githubusercontent.com/sdercolin/f1de7c1f7a894f1fc8f77b17f3e8f77d/raw",
zhCN = "https://gist.githubusercontent.com/sdercolin/1a940a1357e2a6a5c10561482536bdba/raw",
ru = "https://gist.githubusercontent.com/KagamineP/d5837aa5f1b3be3b05aed5cd63b2afe2/raw",
fr = "https://gist.githubusercontent.com/Exorcism0666/29e1c09eb471bccc270cc0a02992a0b1/raw",
),
ReleaseNotesUrl(
en = "https://gist.githubusercontent.com/sdercolin/512db280480072f22cf1d462401eb1a0/raw",
ja = "https://gist.githubusercontent.com/sdercolin/512db280480072f22cf1d462401eb1a0/raw",
zhCN = "https://gist.githubusercontent.com/sdercolin/512db280480072f22cf1d462401eb1a0/raw",
ru = "https://gist.githubusercontent.com/sdercolin/512db280480072f22cf1d462401eb1a0/raw",
fr = "https://gist.githubusercontent.com/sdercolin/512db280480072f22cf1d462401eb1a0/raw",
),
GoogleAnalyticsUsageInfoUrl(
en = "https://gist.githubusercontent.com/sdercolin/b5d4cf81434ea381d8836e0015681029/raw",
ja = "https://gist.githubusercontent.com/sdercolin/b5d4cf81434ea381d8836e0015681029/raw",
zhCN = "https://gist.githubusercontent.com/sdercolin/b5d4cf81434ea381d8836e0015681029/raw",
ru = "https://gist.githubusercontent.com/KagamineP/71234d007f2674b2f8fd8b74d2ebb8fc/raw",
),
ImportWarningTitle(
en = "The following exceptions happened during the import process.",
ja = "インポート中に下記の例外が発生しました。",
zhCN = "导入过程中出现了下列异常。",
ru = "В процессе импорта произошли следующие исключения.",
fr = "Les exceptions suivantes se sont produites pendant le processus d'importation.",
),
ImportWarningTempoNotFound(
en = "- No tempo labels found in the imported project.",
ja = "- テンポ記号が見つかりませんでした。",
zhCN = "- 在导入的工程中未找到速度记号。",
ru = "- Метки темпа не найдены в импортированном проекте.",
fr = "- Aucun tempo n'a été trouvée dans le projet importé.",
),
ImportWarningTempoIgnoredInFile(
en = "- Tempo label ({{bpm}}) at tick {{tick}} in file [{{file}}] was ignored.",
ja = "- ファイル[{{file}}]の tick {{tick}} にあるテンポ記号({{bpm}})を読み込めませんでした。",
zhCN = "- 未能读取文件[{{file}}]中 tick {{tick}} 处的速度记号({{bpm}})。",
ru = "- Метка темпа ({{bpm}}) на отметке {{tick}} в файле [{{file}}] была проигнорирована.",
fr = "- Le tempo ({{bpm}}) au tick {{tick}} du fichier [{{file}}] a été ignorée.",
),
ImportWarningTempoIgnoredInTrack(
en = "- Tempo label ({{bpm}}) at tick {{tick}} in Track {{number}}: [{{name}}] was ignored.",
ja = "- トラック{{number}}:[{{name}}]のtick {{tick}}にあるテンポ記号({{bpm}})を読み込めませんでした。",
zhCN = "- 未能读取音轨{{number}}:[{{name}}]中tick {{tick}}处的速度记号({{bpm}})。",
ru = "- Метка темпа ({{bpm}}) на отметке {{tick}} в треке {{number}}: [{{name}}] была проигнорирована.",
fr = "- Le tempo ({{bpm}}) au tick {{tick}} de la piste {{number}}: [{{name}}] a été ignoré.",
),
ImportWarningTempoIgnoredInPreMeasure(
en = "- Tempo label ({{bpm}}) in pre-measures was ignored.",
ja = "- プリメジャーにあるテンポ記号({{bpm}})を読み込めませんでした。",
zhCN = "- 未能读取前置小节中的速度记号({{bpm}})。",
ru = "- Метка темпа ({{bpm}}) в предварительных мерах была проигнорирована.",
fr = "- Le tempo ({{bpm}}) dans les pré-mesures a été ignorée.",
),
ImportWarningDefaultTempoFixed(
en = "- Default tempo was too large ({{bpm}}), so it was fixed to 120.",
ja = "- デフォルトテンポが大きすぎる({{bpm}})ので、120に修正しました。",
zhCN = "- 默认速度过大({{bpm}}),已修正为120。",
ru = "- Темп по умолчанию слишком большой ({{bpm}}), поэтому он был исправлен на 120.",
fr = "- Le tempo par défaut était trop grand ({{bpm}}), il a donc été fixé à 120.",
),
ImportWarningTimeSignatureNotFound(
en = "- No time signature labels found in the imported project.",
ja = "- 拍子記号が見つかりませんでした。",
zhCN = "- 在导入的工程中未找到节拍记号。",
ru = "- В импортированном проекте не найдено меток временных сигнатур.",
fr = "- Aucune signature rythmique n'a trouvé dans le projet importé.",
),
ImportWarningTimeSignatureIgnoredInTrack(
en = "- Time signature label ({{timeSignature}}) at measure {{measure}}" +
" in Track {{number}}: [{{name}}] was ignored.",
ja = "- トラック{{number}}:[{{name}}]の小節{{measure}}にある拍子記号({{timeSignature}})を読み込めませんでした。",
zhCN = "- 未能读取音轨{{number}}: [{{name}}]中小节{{measure}}处的节拍记号({{timeSignature}})。",
ru = "- Метка временной сигнатуры ({{TimeSignature}}) при измерении {{measure}}" +
" в треке {{number}}: [{{name}}] была проигнорирована.",
fr = "La signature rythmique ({{timeSignature}}) à la mesure {{measure}}" +
" de la piste {{number}} : [{{name}}]] a été ignoré.",
),
ImportWarningTimeSignatureIgnoredInPreMeasure(
en = "- Time signature label ({{timeSignature}}) in pre-measures was ignored.",
ja = "- プリメジャーにある拍子記号({{timeSignature}})を読み込めませんでした。",
zhCN = "- 未能读取前置小节中的节拍记号({{timeSignature}})。",
ru = "- Метка временной сигнатуры ({{timeSignature}}) в предварительных мерах была проигнорирована.",
fr = "- La signature rythmique ({{timeSignature}}) dans les pré-mesures a été ignorée.",
),
ImportWarningIncompatibleFormatSerializationVersion(
en = "- Some data may have been lost because the input file has an incompatible serialization version:" +
" {{dataVersion}}. Current version is {{currentVersion}}.",
ja = "- 入力ファイルのシリアライゼーションバージョン {{dataVersion}} への互換性がないため、すべてのデータを読み込んでいない" +
"可能性があります。現在のバージョンは {{currentVersion}} です。",
zhCN = "- 因为导入的文件的序列化版本 {{dataVersion}} 与当前版本不兼容,部分数据可能丢失。当前版本:{{currentVersion}}。",
),
VsqxFormatDescription(
en = "Project for VOCALOID4",
ja = "VOCALOID4 プロジェクト",
zhCN = "VOCALOID4 工程",
ru = "Проект для VOCALOID4",
fr = "Projet pour VOCALOID4",
),
VprFormatDescription(
en = "Project for VOCALOID5",
ja = "VOCALOID5 プロジェクト",
zhCN = "VOCALOID5 工程",
ru = "Проект для VOCALOID5",
fr = "Projet pour VOCALOID5",
),
UstFormatDescription(
en = "Project for UTAU",
ja = "UTAU プロジェクト",
zhCN = "UTAU 工程",
ru = "Проект для UTAU",
fr = "Projet pour UTAU",
),
UstxFormatDescription(
en = "Project for OpenUtau",
ja = "OpenUtau プロジェクト",
zhCN = "OpenUtau 工程",
ru = "Проект для OpenUtau",
fr = "Projet pour OpenUtau",
),
CcsFormatDescription(
en = "Project for CeVIO Creative Studio",
ja = "CeVIO Creative Studio プロジェクト",
zhCN = "CeVIO Creative Studio 工程",
ru = "Проект для CeVIO Creative Studio",
fr = "Projet pour CeVIO Creative Studio",
),
SvpFormatDescription(
en = "Project for Synthesizer V Studio",
ja = "Synthesizer V Studio プロジェクト",
zhCN = "Synthesizer V Studio 工程",
ru = "Проект для Synthesizer V Studio",
fr = "Projet pour Synthesizer V Studio",
),
S5pFormatDescription(
en = "Project for Synthesizer V",
ja = "Synthesizer V プロジェクト",
zhCN = "Synthesizer V 工程",
ru = "Проект для Synthesizer V",
fr = "Projet pour Synthesizer V",
),
MusicXmlFormatDescription(
en = "MusicXML $MUSIC_XML_VERSION (CeVIO style)",
ja = "MusicXML $MUSIC_XML_VERSION (CeVIO基準に準じる)",
zhCN = "MusicXML $MUSIC_XML_VERSION(参照CeVIO标准)",
ru = "MusicXML $MUSIC_XML_VERSION (стиль CeVIO)",
fr = "MusicXML $MUSIC_XML_VERSION (style CeVIO)",
),
DvFormatDescription(
en = "Project for DeepVocal",
ja = "DeepVocal プロジェクト",
zhCN = "DeepVocal 工程",
ru = "Проект для DeepVocal",
fr = "Projet pour DeepVocal",
),
VsqFormatDescription(
en = "Project for VOCALOID2",
ja = "VOCALOID2 プロジェクト",
zhCN = "VOCALOID2 工程",
ru = "Проект для VOCALOID2",
fr = "Projet pour VOCALOID2",
),
VocaloidMidiFormatDescription(
en = "Project for VOCALOID1",
ja = "VOCALOID1 プロジェクト",
zhCN = "VOCALOID1 工程",
ru = "Проект для VOCALOID1",
fr = "Projet pour VOCALOID1",
),
UfDataFormatDescription(
en = "UtaFormatix Data Format (v$UtaFormatixDataVersion)",
ja = "UtaFormatix データ形式(v$UtaFormatixDataVersion)",
zhCN = "UtaFormatix 数据格式(v$UtaFormatixDataVersion)",
ru = "Формат данных UtaFormatix (v$UtaFormatixDataVersion)",
fr = "Format de données UtaFormatix (v$UtaFormatixDataVersion)",
),
StandardMidDescription(
en = "Standard MIDI File",
ja = "標準MIDIファイル",
zhCN = "标准MIDI文件",
ru = "Стандартный MIDI-файл",
fr = "Fichier MIDI standard",
),
VoiSonaFormatDescription(
en = "Project for VoiSona",
ja = "VoiSona プロジェクト",
zhCN = "VoiSona 工程",
ru = "Проект для VoiSona",
fr = "Projet pour VoiSona",
),
ExportButton(
en = "Export",
ja = "エクスポート",
zhCN = "导出",
ru = "Экспортировать",
fr = "Exporter",
),
RestartButton(
en = "Back to the beginning",
ja = "プロジェクトインポート画面に戻る",
zhCN = "回到初始页面",
ru = "Вернуться на главную",
fr = "Retour au début",
),
ExportNotificationPhonemeResetRequiredVSQ(
en = "Phonemes of all notes were set to \"a\". Please reset them to make it sound correctly.",
ja = "全てのノートの発音記号が\"a\"に設定されました。正確に発音させるには発音記号をリセットしてください。",
zhCN = "所有音符的音素都被设为了\"a\"。请重置音素以使其正确发音。",
ru = "Фонемы всех нот были установлены на \"a\"." +
" Пожалуйста, сбросьте их, чтобы они звучали правильно.",
fr = "Les phonèmes de toutes les notes ont été réglés sur \"a\"." +
" Veuillez les réinitialiser pour que le son soit correct.",
),
ExportNotificationPhonemeResetRequiredV4(
en = "Phonemes of all notes were set to \"a\"." +
" Please use \"Lyrics\" -> \"Convert Phonemes\" in the menu of VOCALOID4 to reset them.",
ja = "全てのノートの発音記号が\"a\"に設定されました。" +
"VOCALOID4のメニューから「歌詞」->「発音記号変換」機能で発音記号をリセットしてください。",
zhCN = "所有音符的音素都被设为了\"a\"。请使用VOCALOID4菜单中的「歌词」->「音位变换」功能来重置音素。",
ru = "Фонемы всех нот были установлены на \"a\"." +
" Пожалуйста, воспользуйтесь \"Lyrics\" -> \"Convert Phonemes\" в меню VOCALOID4 чтобы сбросить их.",
fr = "Les phonèmes de toutes les notes ont été réglés sur \"a\"." +
" Veuillez utiliser \"Lyrics\" -> \"Convert Phonemes\" dans le menu de VOCALOID4 pour les réinitialiser.",
),
ExportNotificationPhonemeResetRequiredV5(
en = "Phonemes of all notes were set to \"a\". Please use \"Job\" -> \"Convert Phonemes to Match Languages\"" +
" in the menu of VOCALOID5 to reset them.",
ja = "全てのノートの発音記号が\"a\"に設定されました。" +
"VOCALOID5のメニューから「ジョブ」->「発音記号を言語に合わせて変換」機能で発音記号をリセットしてください。",
zhCN = "所有音符的音素都被设为了\"a\"。请使用VOCALOID5菜单中的「任务」->「发音符号匹配」功能来重置音素。",
ru = "Фонемы всех нот были установлены на \"a\"." +
" Пожалуйста, воспользуйтесь \"Job\" -> \"Convert Phonemes to Match Languages\"" +
" в меню VOCALOID5 чтобы сбросить их.",
fr = "Les phonèmes de toutes les notes ont été réglés sur \"a\". Veuillez utiliser \"Lyrics\" ->" +
" \"Convert Phonemes to Match Languages\" dans le menu de VOCALOID5 pour les réinitialiser.",
),
ExportNotificationTimeSignatureIgnored(
en = "Could not convert time signatures to the target format.",
ja = "拍子記号を出力することができませんでした。",
zhCN = "未能将节拍记号导出到目标格式。",
ru = "Не удалось преобразовать временные сигнатуры в целевой формат.",
fr = "Impossible de convertir les signatures rythmiques au format cible.",
),
ExportNotificationPitchDataExported(
en = "Some pitch parameters were exported. For a higher reproduction accuracy," +
" you may need to turn off pitch transition and vibrato settings in the target editor.",
ja = "ピッチパラメータが出力されました。出力側のエディターでピッチ推移やビブラートなどの設定を削除することで、より高い精度でピッチを" +
"再現できる場合があります。",
zhCN = "生成的文件中带有音高参数。您可能需要在对象编辑器中关闭音高平滑设置及颤音设置以达到更高的重现精度。",
ru = "Некоторые параметры высоты тона были экспортированы. Для более высокой точности" +
"воспроизведения, возможно вам потребуется отключить настройки высоты тона и" +
" вибрато в целевом редакторе.",
fr = "Certains paramètres de hauteur ont été exportés. Pour une plus grande précision," +
" vous devrez peut-être désactiver les paramètres de transition de hauteur" +
" et de vibrato dans l'éditeur cible.",
),
ExportNotificationDataOverLengthLimitIgnored(
en = "Data exceeding length limit ignored. Please check if your output includes all your intended data.",
ja = "一部のデータが長さ制限を超えているため、すべてのデータを出力することができませんでした。意図したデータが出力結果にすべて" +
"入っているかどうかを確認してください。",
zhCN = "部分数据超过了长度限制而被忽略,请检查生成的文件是否完整包含您所需要的数据。",
ru = "Данные, превышающие предельную длину, игнорируются. Пожалуйста, проверьте," +
" включает ли ваш вывод все предполагаемые данные.",
fr = "Les données dépassant la limite de longueur sont ignorées." +
" Veuillez vérifier que votre exportation inclut toutes les données prévues.",
),
SlightRestsFilling(
en = "Fill short rests",
ja = "短い休符を埋める",
zhCN = "填充短休止符",
ru = "Заполнить короткие промежутки",
fr = "Remplir les courtes périodes de silence",
),
SlightRestsFillingDescription(
en = "Extend note to fill the short rest between it and its next note",
ja = "ノート同士の間に短い休符が挟まっている場合、前のノートを伸ばして隙間を埋めます",
zhCN = "当音符之间存在较短的休止符时,将前一个音符延长来填充休止符",
ru = "Расширить ноту, чтобы заполнить короткий промежуток между ней и следующей нотой",
fr = "Prolonger la note pour combler le court silence qui la sépare de la note suivante.",
),
SlightRestsFillingThresholdLabel(
en = "Max length to be processed (exclusive)",
ja = "長さが入力値未満の場合処理",
zhCN = "适用该处理的最大长度(不含)",
ru = "Максимальная длина, подлежащая обработке (исключительная)",
fr = "Longueur maximale à traiter (exclusive)",
),
SlightRestsFillingThresholdItem(
en = "1/{{denominator}} note",
ja = "{{denominator}}分音符",
zhCN = "{{denominator}}分音符",
ru = "1/{{denominator}} ноты",
fr = "1/{{denominator}} note",
),
UseSimpleImport(
en = "Simple Import",
ja = "シンプルインポート",
zhCN = "简单导入",
ru = "Простой импорт",
fr = "Importation simple",
),
UseSimpleImportDescription(
en = "Ignore detail parameters to accelerate importing",
ja = "パラメータをインポートしないことで、より早くインポートする",
zhCN = "忽略参数,使导入更快",
ru = "Игнорировать подробные параметры для ускорения импорта",
fr = "Ignorer les paramètres détaillés pour accélérer l'importation",
),
UseMultipleMode(
en = "Batch conversion",
ja = "一括変換",
zhCN = "批量转换",
ru = "Пакетное преобразование",
fr = "Conversion par lots",
),
UseMultipleModeDescription(
en = "Convert multiple files at once. Every file will be saved separately as a project.",
ja = "複数のファイルを一括で変換します。各ファイルはプロジェクトとして別々に保存されます。",
zhCN = "一次性转换多个文件。每个文件将单独保存为一个工程。",
ru = "Преобразовать несколько файлов одновременно. Каждый файл будет сохранен отдельно в качестве проекта.",
fr = "Convertir plusieurs fichiers en même temps. " +
"Chaque fichier sera enregistré apartment en tant que projet.",
),
MultipleModeForMultipleFileFormatWarningTitle(
en = "You are using the batch conversion mode",
ja = "一括変換モードを使用しています",
zhCN = "您正在使用批量转换模式",
),
MultipleModeForMultipleFileFormatWarningDescription(
en = "In the batch conversion mode, every file will be saved separately as a project without being merged.\n" +
"Currently you are using this mode with an import format that does not support multiple tracks.\n" +
"Please make sure that you don't want to merge the input tracks before continuing.\n" +
"If you don't want to use this mode, " +
"please return to the Import page and toggle off the \"Batch conversion\" option.",
ja = "一括変換モードでは、各ファイルはマージされずにプロジェクトとして別々に保存されます。\n" +
"現在、複数トラックをサポートしていないフォーマットでこのモードを使用しています。\n" +
"入力トラックがマージされないことをご確認の上、続行してください。\n" +
"このモードを使用したくない場合は、インポートページに戻り、「一括変換」オプションをオフにしてください。",
zhCN = "在批量转换模式下,每个文件将单独保存为一个工程而不会被合并。\n" +
"当前您正在此模式下导入只支持单个轨道的格式。\n" +
"请确保您不想合并输入轨道后再继续。\n" +
"如果您不想使用此模式,请返回导入页面并关闭“批量转换”选项。",
)
;
fun get(language: Language): String = when (language) {
English -> en
French -> fr
Japanese -> ja
SimplifiedChinese -> zhCN
Russian -> ru
}
}
fun string(key: Strings, vararg params: Pair<String, String>): String {
val options = object {}.asDynamic()
params.forEach { (key, value) ->
options[key] = value
}
return i18next.t(key.name, options) as String
}