Repository navigation
Expand file tree
/
Copy pathFeatureLocales.lua
More file actions
706 lines (696 loc) · 81.6 KB
/
Copy pathFeatureLocales.lua
File metadata and controls
706 lines (696 loc) · 81.6 KB
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
local _,F=...
local keys={'NET_LOCKDOWN','PAGE_home','PAGE_queue','QUEUE_ADD','QUEUE_FULL','QUEUE_REMOVE','QUEUE_UP','QUEUE_EDIT','QUEUE_SUMMARY','QUEUE_SHARED','EMPTY_queue','EMPTY_home','QUEUE_READY','HOME_INFO','SCAN_AGE','SCAN_UNKNOWN'}
local translations={
enUS={
'The client has temporarily restricted addon messages. Sharing is paused; queued messages will resume when the restriction ends.',
'Character','Crafting queue','Add to queue','The queue is full (50 goals).','Remove goal','Move up','Save quantity',
'%d goals / materials ready for %d / %d missing items',
'All goals share your inventory. Craft manually in the profession window.',
'Select a recipe, enter a quantity and click Add to queue.','Scan your professions to fill this list.',
'Materials and crafting capabilities found; crafting is still required.',
'%s / Level %d\n%s / %s','Last scan: %d min ago','Scan time unknown.'},
ruRU={
'Клиент временно ограничил сообщения аддонов. Обмен приостановлен; очередь отправится после снятия ограничения.',
'Персонаж','Очередь изготовления','Добавить в очередь','Очередь заполнена (50 целей).','Удалить цель','Выше','Сохранить количество',
'Целей: %d / материалы готовы для %d / не хватает позиций: %d',
'Запасы общие для всех целей. Изготавливайте вручную в окне профессии.',
'Выберите рецепт, укажите количество и нажмите «Добавить в очередь».','Сканируйте профессии, чтобы заполнить список.',
'Материалы и возможности найдены; вещи ещё нужно изготовить.',
'%s / Уровень %d\n%s / %s','Последнее сканирование: %d мин. назад','Время сканирования неизвестно.'},
deDE={
'Der Client schränkt Addon-Nachrichten vorübergehend ein. Der Austausch pausiert; die Warteschlange wird danach fortgesetzt.',
'Charakter','Herstellungswarteschlange','Zur Warteschlange','Warteschlange voll (50 Ziele).','Ziel entfernen','Nach oben','Menge speichern',
'%d Ziele / Material bereit für %d / %d fehlende Gegenstände',
'Alle Ziele teilen deine Vorräte. Stelle manuell im Berufsfenster her.',
'Wähle ein Rezept und eine Menge und füge es zur Warteschlange hinzu.','Scanne deine Berufe, um die Liste zu füllen.',
'Materialien und Fähigkeiten gefunden; Herstellung noch erforderlich.',
'%s / Stufe %d\n%s / %s','Letzter Scan: vor %d Min.','Scanzeit unbekannt.'},
frFR={
'Le client limite temporairement les messages des addons. Le partage est en pause ; la file reprendra après la restriction.',
'Personnage','File de fabrication','Ajouter à la file','File pleine (50 objectifs).','Retirer cet objectif','Monter','Enregistrer la quantité',
'%d objectifs / matériaux prêts pour %d / %d objets manquants',
'Tous les objectifs partagent vos stocks. Fabriquez dans la fenêtre de métier.',
'Choisissez une recette, une quantité, puis ajoutez-la à la file.','Analysez vos métiers pour remplir cette liste.',
'Matériaux et compétences trouvés ; fabrication encore nécessaire.',
'%s / Niveau %d\n%s / %s','Dernière analyse : il y a %d min','Date d’analyse inconnue.'},
esES={
'El cliente restringe temporalmente los mensajes de addons. El intercambio está en pausa; la cola continuará después.',
'Personaje','Cola de fabricación','Añadir a la cola','Cola llena (50 objetivos).','Eliminar objetivo','Subir','Guardar cantidad',
'%d objetivos / materiales listos para %d / %d objetos faltantes',
'Todos los objetivos comparten tus existencias. Fabrica en la ventana de profesión.',
'Selecciona una receta, indica la cantidad y añádela a la cola.','Escanea tus profesiones para llenar esta lista.',
'Materiales y capacidades encontrados; aún debes fabricar.',
'%s / Nivel %d\n%s / %s','Último escaneo: hace %d min','Hora del escaneo desconocida.'},
itIT={
'Il client limita temporaneamente i messaggi degli addon. La condivisione è in pausa; la coda riprenderà dopo la restrizione.',
'Personaggio','Coda di creazione','Aggiungi alla coda','Coda piena (50 obiettivi).','Rimuovi obiettivo','Sposta su','Salva quantità',
'%d obiettivi / materiali pronti per %d / %d oggetti mancanti',
'Tutti gli obiettivi condividono le scorte. Crea nella finestra della professione.',
'Scegli una ricetta, indica la quantità e aggiungila alla coda.','Scansiona le professioni per riempire la lista.',
'Materiali e abilità trovati; la creazione è ancora necessaria.',
'%s / Livello %d\n%s / %s','Ultima scansione: %d min fa','Ora della scansione sconosciuta.'},
ptBR={
'O cliente restringe temporariamente as mensagens de addons. A troca está pausada; a fila continuará após a restrição.',
'Personagem','Fila de fabricação','Adicionar à fila','Fila cheia (50 objetivos).','Remover objetivo','Mover para cima','Salvar quantidade',
'%d objetivos / materiais prontos para %d / %d itens faltando',
'Todos os objetivos compartilham seus estoques. Fabrique na janela da profissão.',
'Escolha uma receita, informe a quantidade e adicione à fila.','Escaneie suas profissões para preencher a lista.',
'Materiais e habilidades encontrados; ainda é preciso fabricar.',
'%s / Nível %d\n%s / %s','Última leitura: há %d min','Horário da leitura desconhecido.'},
koKR={
'클라이언트가 애드온 메시지를 일시적으로 제한했습니다. 공유가 일시 정지되며 제한이 끝나면 대기열 전송이 재개됩니다.',
'캐릭터','제작 대기열','대기열에 추가','대기열이 가득 찼습니다 (목표 50개).','목표 삭제','위로 이동','수량 저장',
'목표 %d개 / 재료 준비 %d개 / 부족한 아이템 %d종',
'모든 목표가 보유 재료를 공유합니다. 전문 기술 창에서 직접 제작하세요.',
'도안을 선택하고 수량을 입력한 후 대기열에 추가하세요.','전문 기술을 스캔하여 목록을 채우세요.',
'재료와 제작 능력을 확인했습니다. 실제 제작은 아직 필요합니다.',
'%s / 레벨 %d\n%s / %s','최근 스캔: %d분 전','스캔 시간 정보 없음.'},
zhCN={
'客户端暂时限制了插件消息。共享已暂停,限制解除后将继续发送队列。',
'角色','制作队列','加入队列','队列已满(50个目标)。','移除目标','上移','保存数量',
'%d个目标 / %d个材料已齐 / 缺少%d种物品',
'所有目标共用你的库存。请在专业窗口中手动制作。',
'选择配方,输入数量,然后加入队列。','扫描专业以填充此列表。',
'已找到材料和制作能力,仍需实际制作。',
'%s / 等级%d\n%s / %s','上次扫描:%d分钟前','扫描时间未知。'},
zhTW={
'用戶端暫時限制了插件訊息。分享已暫停,限制解除後將繼續傳送佇列。',
'角色','製作佇列','加入佇列','佇列已滿(50個目標)。','移除目標','上移','儲存數量',
'%d個目標 / %d個材料已齊 / 缺少%d種物品',
'所有目標共用你的庫存。請在專業視窗中手動製作。',
'選擇配方,輸入數量,然後加入佇列。','掃描專業以填入此清單。',
'已找到材料和製作能力,仍需實際製作。',
'%s / 等級%d\n%s / %s','上次掃描:%d分鐘前','掃描時間未知。'},
}
translations.enGB=translations.enUS; translations.esMX=translations.esES
for locale,values in pairs(translations) do
for i,key in ipairs(keys) do F.Locales[locale][key]=values[i] end
end
local marketKeys={'PAGE_market','MARKET_SCAN','MARKET_SCAN_HELP','MARKET_AT_AH','MARKET_UNSUPPORTED','MARKET_NO_TARGETS','MARKET_STOPPED','MARKET_SCANNING','MARKET_FINISHED','MARKET_INTERRUPTED','MARKET_UNKNOWN','MARKET_EMPTY','MARKET_PRICE','MARKET_WARNING','MARKET_BUDGET','MARKET_HISTORY','MARKET_HISTORY_HELP','MARKET_HISTORY_EMPTY','MARKET_PROGRESS'}
local markets={
enUS={'Market','Scan queue materials','Scan missing queue materials at the auction house. If none are missing, scan favorite items. Equipment variants are not priced yet.',
'Open the ForeverNet tab at the auction house.','The required auction API is unavailable.','No queue shortages or favorite items to scan.',
'Scan stopped.','Scanning…','Scan finished.','Scan stopped because another search started.',
'Price unknown. Scan this item at the auction house.','No purchasable buyout offers in the last complete scan.',
'%s/unit / Buy %d: ~%s\nStill missing: %d / Snapshot: %d min ago',
'Stale, partial or approximate prices; the purchase cost can change.',
'Known purchase cost: ~%s\nItems without full coverage: %d',
'Price history','Observed daily minimums, not sales. Gaps mean no observations; history starts with your scans.',
'No price observations yet. Scan this item at the auction house.','%d/%d / skipped: %d'},
ruRU={'Рынок','Сканировать материалы','На аукционе сканируем дефицит очереди, а если его нет — избранные вещи. Варианты экипировки пока не оцениваются.',
'Откройте вкладку ForeverNet у аукциониста.','Нужный API аукциона недоступен.','Нет дефицита очереди или избранных вещей для сканирования.',
'Сканирование остановлено.','Сканирование…','Сканирование завершено.','Сканирование остановлено: начат другой поиск.',
'Цена неизвестна. Сканируйте вещь на аукционе.','В последнем полном сканировании нет доступных лотов с выкупом.',
'%s/шт. / Купить %d: ~%s\nЕщё не хватает: %d / Снимок: %d мин. назад',
'Цены устарели, неполны или приблизительны; сумма покупки может измениться.',
'Известная сумма покупки: ~%s\nПозиций без полного покрытия: %d',
'История цен','Наблюдавшиеся дневные минимумы, а не продажи. Пробелы — дни без наблюдений. История начинается с ваших сканирований.',
'Наблюдений цены ещё нет. Сканируйте вещь на аукционе.','%d/%d / пропущено: %d'},
deDE={'Markt','Materialien scannen','Scanne fehlende Warteschlangenmaterialien beim Auktionator, sonst Favoriten. Ausrüstungsvarianten werden noch nicht bewertet.',
'Öffne den ForeverNet-Reiter im Auktionshaus.','Die benötigte Auktions-API ist nicht verfügbar.','Keine fehlenden Materialien oder Favoriten zum Scannen.',
'Scan gestoppt.','Scan läuft…','Scan abgeschlossen.','Scan gestoppt: eine andere Suche wurde gestartet.',
'Preis unbekannt. Scanne den Gegenstand im Auktionshaus.','Keine kaufbaren Sofortkaufangebote im letzten vollständigen Scan.',
'%s/Stück / %d kaufen: ~%s\nNoch fehlend: %d / Stand: vor %d Min.',
'Veraltete, unvollständige oder ungefähre Preise; die Kosten können sich ändern.',
'Bekannte Einkaufskosten: ~%s\nPositionen ohne volle Abdeckung: %d',
'Preisverlauf','Beobachtete Tagesminima, keine Verkäufe. Lücken bedeuten keine Beobachtung. Der Verlauf beginnt mit deinen Scans.',
'Noch keine Preisbeobachtungen. Scanne den Gegenstand im Auktionshaus.','%d/%d / übersprungen: %d'},
frFR={'Marché','Analyser les matériaux','Analysez les matériaux manquants de la file à l’hôtel des ventes, sinon les favoris. Les variantes d’équipement ne sont pas encore évaluées.',
'Ouvrez l’onglet ForeverNet à l’hôtel des ventes.','L’API d’enchères requise est indisponible.','Aucun manque ni favori à analyser.',
'Analyse arrêtée.','Analyse…','Analyse terminée.','Analyse arrêtée : une autre recherche a commencé.',
'Prix inconnu. Analysez cet objet à l’hôtel des ventes.','Aucune offre achetable dans la dernière analyse complète.',
'%s/unité / Acheter %d : ~%s\nManque encore : %d / Relevé : il y a %d min',
'Prix anciens, incomplets ou approximatifs ; le coût peut changer.',
'Coût connu des achats : ~%s\nArticles sans couverture complète : %d',
'Historique des prix','Minimums quotidiens observés, pas des ventes. Les trous indiquent des jours sans observation. L’historique commence avec vos analyses.',
'Aucun prix observé. Analysez cet objet à l’hôtel des ventes.','%d/%d / ignorés : %d'},
esES={'Mercado','Escanear materiales','Escanea materiales faltantes de la cola en la subasta; si no faltan, los favoritos. Las variantes de equipo aún no se valoran.',
'Abre la pestaña ForeverNet en la subasta.','La API de subasta necesaria no está disponible.','No hay materiales faltantes ni favoritos para escanear.',
'Escaneo detenido.','Escaneando…','Escaneo terminado.','Escaneo detenido: empezó otra búsqueda.',
'Precio desconocido. Escanea el objeto en la subasta.','No hay ofertas de compra disponibles en el último escaneo completo.',
'%s/unidad / Comprar %d: ~%s\nAún faltan: %d / Datos: hace %d min',
'Precios antiguos, incompletos o aproximados; el coste puede cambiar.',
'Coste conocido de compra: ~%s\nObjetos sin cobertura completa: %d',
'Historial de precios','Mínimos diarios observados, no ventas. Los huecos son días sin observaciones. El historial empieza con tus escaneos.',
'Aún no hay precios observados. Escanea el objeto en la subasta.','%d/%d / omitidos: %d'},
itIT={'Mercato','Scansiona materiali','Scansiona i materiali mancanti della coda all’asta, altrimenti i preferiti. Le varianti di equipaggiamento non vengono ancora valutate.',
'Apri la scheda ForeverNet alla casa d’aste.','L’API d’asta richiesta non è disponibile.','Nessun materiale mancante o preferito da scansionare.',
'Scansione interrotta.','Scansione…','Scansione completata.','Scansione interrotta: è iniziata un’altra ricerca.',
'Prezzo sconosciuto. Scansiona l’oggetto alla casa d’aste.','Nessuna offerta acquistabile nell’ultima scansione completa.',
'%s/unità / Compra %d: ~%s\nMancano ancora: %d / Dati: %d min fa',
'Prezzi vecchi, incompleti o approssimativi; il costo può cambiare.',
'Costo d’acquisto noto: ~%s\nOggetti senza copertura completa: %d',
'Storico prezzi','Minimi giornalieri osservati, non vendite. Gli spazi sono giorni senza osservazioni. Lo storico inizia con le tue scansioni.',
'Nessun prezzo osservato. Scansiona l’oggetto alla casa d’aste.','%d/%d / saltati: %d'},
ptBR={'Mercado','Escanear materiais','Escaneie os materiais faltantes da fila no leilão; se não faltam, os favoritos. Variantes de equipamento ainda não são avaliadas.',
'Abra a aba ForeverNet no leilão.','A API de leilão necessária não está disponível.','Sem materiais faltantes ou favoritos para escanear.',
'Leitura interrompida.','Escaneando…','Leitura concluída.','Leitura interrompida: outra busca foi iniciada.',
'Preço desconhecido. Escaneie o item no leilão.','Sem ofertas compráveis na última leitura completa.',
'%s/unidade / Comprar %d: ~%s\nAinda faltam: %d / Dados: há %d min',
'Preços antigos, incompletos ou aproximados; o custo pode mudar.',
'Custo conhecido da compra: ~%s\nItens sem cobertura completa: %d',
'Histórico de preços','Mínimos diários observados, não vendas. Lacunas são dias sem observações. O histórico começa com suas leituras.',
'Nenhum preço observado. Escaneie o item no leilão.','%d/%d / ignorados: %d'},
koKR={'시장','재료 스캔','경매장에서 대기열의 부족한 재료를 스캔합니다. 부족한 재료가 없으면 즐겨찾기를 스캔합니다. 장비 변형은 아직 평가하지 않습니다.',
'경매장에서 ForeverNet 탭을 여세요.','필요한 경매장 API를 사용할 수 없습니다.','스캔할 부족한 재료나 즐겨찾기가 없습니다.',
'스캔이 중지되었습니다.','스캔 중…','스캔 완료.','다른 검색이 시작되어 스캔이 중지되었습니다.',
'가격을 알 수 없습니다. 경매장에서 아이템을 스캔하세요.','최근 전체 스캔에 구매 가능한 즉시 구매 매물이 없습니다.',
'개당 %s / %d개 구매: ~%s\n아직 부족: %d / %d분 전 기록',
'오래되거나 불완전한 추정 가격입니다. 구매 비용이 달라질 수 있습니다.',
'확인된 구매 비용: ~%s\n수량을 충족하지 못하는 아이템: %d',
'가격 기록','실제로 관찰한 일별 최저가이며 판매 기록이 아닙니다. 공백은 관찰하지 않은 날입니다. 스캔부터 기록됩니다.',
'관찰한 가격이 없습니다. 경매장에서 아이템을 스캔하세요.','%d/%d / 건너뜀: %d'},
zhCN={'市场','扫描材料','在拍卖行扫描队列缺少的材料;没有缺口时扫描收藏物品。暂不估价装备变体。',
'在拍卖行打开ForeverNet页签。','所需拍卖行API不可用。','没有缺少的材料或收藏物品可扫描。',
'扫描已停止。','扫描中…','扫描完成。','其他搜索已开始,扫描停止。',
'价格未知,请在拍卖行扫描此物品。','上次完整扫描没有可购买的一口价拍卖。',
'%s/个 / 购买%d个:~%s\n仍缺%d个 / %d分钟前的快照',
'价格过期、不完整或仅为估算,购买费用可能变化。',
'已知购买费用:~%s\n未完全覆盖的物品种类:%d',
'价格历史','实际观察的每日最低价,并非成交记录。空白表示没有观察。历史从你的扫描开始。',
'尚无价格观察,请在拍卖行扫描此物品。','%d/%d / 跳过:%d'},
zhTW={'市場','掃描材料','在拍賣場掃描佇列缺少的材料;沒有缺口時掃描收藏物品。暫不估價裝備變體。',
'在拍賣場開啟ForeverNet頁籤。','所需拍賣場API無法使用。','沒有缺少的材料或收藏物品可掃描。',
'掃描已停止。','掃描中…','掃描完成。','其他搜尋已開始,掃描停止。',
'價格未知,請在拍賣場掃描此物品。','上次完整掃描沒有可購買的直購拍賣。',
'%s/個 / 購買%d個:~%s\n仍缺%d個 / %d分鐘前的快照',
'價格過期、不完整或僅為估算,購買費用可能變化。',
'已知購買費用:~%s\n未完全覆蓋的物品種類:%d',
'價格歷史','實際觀察的每日最低價,並非成交記錄。空白表示沒有觀察。歷史從你的掃描開始。',
'尚無價格觀察,請在拍賣場掃描此物品。','%d/%d / 略過:%d'},
}
markets.enGB=markets.enUS; markets.esMX=markets.esES
for locale,values in pairs(markets) do
for i,key in ipairs(marketKeys) do F.Locales[locale][key]=values[i] end
F.Locales[locale].EMPTY_market=F.Locales[locale].MARKET_HISTORY_EMPTY
end
local surplus={enUS='Whole lots: %d bought / surplus: %d',ruRU='Целые лоты: покупаем %d / излишек: %d',
deDE='Ganze Auktionen: %d gekauft / Überschuss: %d',frFR='Lots entiers : %d achetés / surplus : %d',
esES='Lotes completos: %d comprados / sobrante: %d',itIT='Lotti interi: %d acquistati / eccedenza: %d',
ptBR='Lotes inteiros: %d comprados / excedente: %d',koKR='전체 묶음: %d개 구매 / 초과: %d개',
zhCN='整组拍卖:购买%d个 / 多出%d个',zhTW='整組拍賣:購買%d個 / 多出%d個'}
surplus.enGB=surplus.enUS; surplus.esMX=surplus.esES
local money={enUS='%dg %ds %dc',ruRU='%dз %dс %dм',deDE='%dg %ds %dk',frFR='%do %da %dc',
esES='%do %dp %dc',itIT='%do %da %dr',ptBR='%do %dp %dc',koKR='%d골 %d실 %d코',zhCN='%d金 %d银 %d铜',zhTW='%d金 %d銀 %d銅'}
money.enGB=money.enUS; money.esMX=money.esES
for locale,value in pairs(surplus) do F.Locales[locale].MARKET_SURPLUS=value; F.Locales[locale].MONEY_FORMAT=money[locale] end
local trackerKeys={'TRACK_TITLE','TRACK_SHOW','TRACK_BANK_COUNT','TRACK_GET_COUNT','TRACK_SEARCH','TRACK_SEARCH_HINT',
'TRACK_WAIT_SEARCH','TRACK_AH_CLOSED','TRACK_LOADING','TRACK_NEXT_CRAFT','TRACK_BANK_NEXT','TRACK_HELP'}
local tracker={
enUS={'Queue tracker','Track materials','Withdraw %d from your bank','Find %d more','Auction',
'Search by item name in the native auction window. Your auction filters still apply.',
'Auction search is not ready. Try again shortly.','Visit an auctioneer first.','Item name is still loading. Try again shortly.',
'Next planned craft','Withdraw the bank materials listed below.',
'Updates with bag changes. Bank is a saved snapshot. Craft and buy manually.'},
ruRU={'Трекер очереди','Следить за материалами','Заберите из банка: %d','Получите ещё: %d','Аукцион',
'Поиск по названию в штатном окне аукциона. Его фильтры продолжают действовать.',
'Поиск аукциона пока не готов. Повторите чуть позже.','Сначала откройте аукцион у аукциониста.','Название вещи ещё загружается. Повторите чуть позже.',
'Первый шаг изготовления','Заберите из банка материалы, перечисленные ниже.',
'Обновляется при изменении сумок. Банк — сохранённый снимок. Покупка и крафт вручную.'},
deDE={'Warteschlangenübersicht','Material verfolgen','%d aus der Bank holen','Noch %d besorgen','Auktion',
'Im Auktionsfenster nach dem Namen suchen. Deine Auktionsfilter gelten weiterhin.',
'Auktionssuche noch nicht bereit. Versuche es gleich erneut.','Besuche zuerst einen Auktionator.','Gegenstandsname lädt noch. Versuche es gleich erneut.',
'Nächste geplante Herstellung','Hole die unten aufgeführten Materialien aus der Bank.',
'Aktualisiert sich bei Taschenänderungen. Bank: gespeicherter Stand. Kauf und Herstellung manuell.'},
frFR={'Suivi de la file','Suivre les matériaux','Retirer %d de la banque','Obtenir encore %d','Enchères',
'Rechercher par nom dans la fenêtre des enchères. Vos filtres restent actifs.',
'Recherche indisponible pour le moment. Réessayez bientôt.','Ouvrez d’abord les enchères.','Le nom de l’objet charge encore. Réessayez bientôt.',
'Prochaine fabrication prévue','Retirez de la banque les matériaux ci-dessous.',
'Actualisé avec les sacs. Banque : instantané enregistré. Achat et fabrication manuels.'},
esES={'Seguimiento de la cola','Seguir materiales','Retira %d del banco','Consigue %d más','Subasta',
'Busca por nombre en la ventana de subastas. Se mantienen tus filtros.',
'La búsqueda aún no está lista. Inténtalo en breve.','Abre primero la casa de subastas.','El nombre del objeto sigue cargando. Inténtalo en breve.',
'Siguiente fabricación prevista','Retira del banco los materiales indicados abajo.',
'Se actualiza al cambiar las bolsas. Banco: instantánea guardada. Compra y fabrica manualmente.'},
itIT={'Monitor della coda','Segui materiali','Preleva %d dalla banca','Ottieni altri %d','Asta',
'Cerca per nome nella finestra delle aste. I tuoi filtri restano attivi.',
'Ricerca non ancora pronta. Riprova tra poco.','Apri prima la casa d’aste.','Il nome dell’oggetto sta caricando. Riprova tra poco.',
'Prossima creazione prevista','Preleva dalla banca i materiali elencati sotto.',
'Si aggiorna con le borse. Banca: copia salvata. Acquista e crea manualmente.'},
ptBR={'Rastreador da fila','Rastrear materiais','Retire %d do banco','Obtenha mais %d','Leilão',
'Busque pelo nome na janela de leilão. Seus filtros continuam ativos.',
'Busca ainda indisponível. Tente novamente em breve.','Abra primeiro a casa de leilões.','O nome do item ainda está carregando. Tente novamente em breve.',
'Próxima criação planejada','Retire do banco os materiais listados abaixo.',
'Atualiza com as bolsas. Banco: registro salvo. Compre e crie manualmente.'},
koKR={'대기열 추적','재료 추적','은행에서 %d개 꺼내기','%d개 더 구하기','경매장',
'기본 경매장 창에서 이름으로 검색합니다. 기존 경매장 필터가 적용됩니다.',
'경매 검색이 아직 준비되지 않았습니다. 잠시 후 다시 시도하세요.','먼저 경매장을 여세요.','아이템 이름을 불러오는 중입니다. 잠시 후 다시 시도하세요.',
'다음 제작 단계','아래 재료를 은행에서 꺼내세요.',
'가방 변경 시 갱신됩니다. 은행은 저장된 기록입니다. 구매와 제작은 직접 진행하세요.'},
zhCN={'队列追踪','追踪材料','从银行取出%d个','还需获取%d个','拍卖行',
'在原生拍卖行窗口按名称搜索。现有拍卖行筛选条件仍然有效。',
'拍卖搜索尚未就绪,请稍后重试。','请先打开拍卖行。','正在加载物品名称,请稍后重试。',
'下一项计划制作','从银行取出下列材料。',
'背包变化时更新。银行使用保存的快照。请手动购买和制作。'},
zhTW={'佇列追蹤','追蹤材料','從銀行取出%d個','還需取得%d個','拍賣場',
'在原生拍賣場視窗按名稱搜尋。現有拍賣場篩選條件仍然有效。',
'拍賣搜尋尚未就緒,請稍後重試。','請先開啟拍賣場。','正在載入物品名稱,請稍後重試。',
'下一項計劃製作','從銀行取出下列材料。',
'背包變化時更新。銀行使用儲存的快照。請手動購買和製作。'},
}
tracker.enGB=tracker.enUS; tracker.esMX=tracker.esES
for locale,values in pairs(tracker) do for i,key in ipairs(trackerKeys) do F.Locales[locale][key]=values[i] end end
local professionKeys={'PRO_QUANTITY','PRO_OUTPUT','PRO_MATERIALS','PRO_HELP','PRO_ADDED','PRO_UNSUPPORTED','PRO_CHOOSE'}
local profession={
enUS={'Target items','%d items per craft','Materials',
'Quantity means finished items. Plans use base reagents; optional choices and crafting remain manual.',
'Added %s x%d to the crafting queue.','Recipe is unlearned or has unsupported costs or output.','Select a recipe in your own profession window.'},
ruRU={'Готовых вещей','За крафт: %d шт.','Материалы',
'Количество готовых вещей. План учитывает базовые реагенты; дополнительные варианты и крафт выбираете сами.',
'В очередь добавлено: %s x%d.','Рецепт не изучен либо его затраты или результат пока не поддерживаются.','Выберите рецепт в окне своей профессии.'},
deDE={'Zielmenge','%d pro Herstellung','Materialien',
'Menge fertiger Gegenstände. Der Plan nutzt Basisreagenzien; optionale Auswahl und Herstellung bleiben manuell.',
'%s x%d zur Herstellungswarteschlange hinzugefügt.','Rezept nicht gelernt oder Kosten bzw. Ergebnis nicht unterstützt.','Wähle ein Rezept im Fenster deines eigenen Berufs.'},
frFR={'Objets voulus','%d par fabrication','Matériaux',
'Quantité d’objets finis. Le plan utilise les réactifs de base ; choix optionnels et fabrication restent manuels.',
'%s x%d ajouté à la file de fabrication.','Recette inconnue ou coûts/résultat non pris en charge.','Choisissez une recette dans votre propre fenêtre de métier.'},
esES={'Objetos deseados','%d por fabricación','Materiales',
'Cantidad de objetos terminados. El plan usa reactivos básicos; las opciones y la fabricación son manuales.',
'Se añadió %s x%d a la cola de fabricación.','Receta no aprendida o costes/resultado no compatibles.','Selecciona una receta en la ventana de tu propia profesión.'},
itIT={'Oggetti richiesti','%d per creazione','Materiali',
'Quantità di oggetti finiti. Il piano usa reagenti base; opzioni e creazione restano manuali.',
'%s x%d aggiunto alla coda di creazione.','Ricetta non appresa o costi/risultato non supportati.','Scegli una ricetta nella finestra della tua professione.'},
ptBR={'Itens desejados','%d por criação','Materiais',
'Quantidade de itens prontos. O plano usa reagentes básicos; opções e criação continuam manuais.',
'%s x%d adicionado à fila de criação.','Receita não aprendida ou custos/resultado não suportados.','Selecione uma receita na janela da sua própria profissão.'},
koKR={'완성품 목표','제작당 %d개','재료',
'완성품 수량입니다. 계획은 기본 재료를 사용하며 추가 선택과 제작은 직접 진행합니다.',
'제작 대기열에 %s x%d 추가했습니다.','미습득 도안이거나 비용 또는 결과를 지원하지 않습니다.','자신의 전문 기술 창에서 도안을 선택하세요.'},
zhCN={'目标成品数量','每次制作%d个','材料',
'数量指成品数量。计划使用基础材料;可选材料和制作由你手动选择。',
'已将%s x%d加入制作队列。','配方尚未学习,或不支持其消耗或产物。','请在自己的专业窗口选择配方。'},
zhTW={'目標成品數量','每次製作%d個','材料',
'數量指成品數量。計劃使用基礎材料;可選材料和製作由你手動選擇。',
'已將%s x%d加入製作佇列。','配方尚未學習,或不支援其消耗或產物。','請在自己的專業視窗選擇配方。'},
}
profession.enGB=profession.enUS; profession.esMX=profession.esES
for locale,values in pairs(profession) do for i,key in ipairs(professionKeys) do F.Locales[locale][key]=values[i] end end
local costKeys={'SOURCE_COMPARE','SOURCE_AUTO','SOURCE_READY','SOURCE_COST_HELP','SOURCE_SPENDING','SOURCE_UNCOVERED',
'SOURCE_FEES','SOURCE_BLOCKED','SOURCE_LOWEST','SOURCE_LESS','SOURCE_MORE','SOURCE_BATCHES','SOURCE_LIMIT'}
local costs={
enUS={'Compare sources','Automatic recipe selection','Get ready-made',
'Auction estimate for shortages of the whole plan, using shared bags/bank first. Gathering, vendor sources and crafting fees are excluded. Choose an option to recalculate.',
'Additional purchases for the whole plan: ~%s','%d item types without full price or volume coverage',
'Crafting fees are unknown and excluded.','A station, chosen source or dependency is unavailable.',
'Lowest purchase estimate among fully priced variants.','%s less than the current plan','%s more than the current plan',
'%d crafts / %d items produced','Limited preview: some variants or prices are not compared.'},
ruRU={'Способы получения','Автовыбор рецепта','Получить готовым',
'Оценка покупки дефицита всего плана на аукционе. Сначала используются общие сумки/банк. Добыча, торговцы и плата мастеру не входят. Выбор пересчитывает план.',
'Покупка недостающего для всего плана: ~%s','Без полного покрытия ценой или лотами: %d позиций',
'Плата другим мастерам неизвестна и не включена.','Недоступна станция, выбранный источник или зависимость.',
'Наименьшая покупка среди полностью оценённых вариантов.','На %s меньше текущего плана','На %s больше текущего плана',
'Крафтов: %d / будет изготовлено: %d','Ограниченный просмотр: не все варианты или цены сравнены.'},
deDE={'Bezugswege vergleichen','Automatische Rezeptwahl','Fertig besorgen',
'Auktionsschätzung für Fehlmengen des gesamten Plans mit gemeinsamen Taschen/Bank. Sammeln, Händler und Herstellungsgebühren fehlen. Auswahl berechnet neu.',
'Zusätzliche Käufe für den gesamten Plan: ~%s','%d Gegenstandsarten ohne vollständige Preis- oder Mengenabdeckung',
'Gebühren anderer Handwerker sind unbekannt und ausgeschlossen.','Station, gewählte Quelle oder Abhängigkeit fehlt.',
'Niedrigste Kaufschätzung unter vollständig bewerteten Varianten.','%s weniger als der aktuelle Plan','%s mehr als der aktuelle Plan',
'%d Herstellungen / %d erzeugte Gegenstände','Begrenzte Vorschau: nicht alle Varianten oder Preise verglichen.'},
frFR={'Comparer les sources','Recette automatique','Obtenir déjà fabriqué',
'Estimation aux enchères des manques du plan entier avec sacs/banque partagés. Récolte, vendeurs et frais de fabrication exclus. Le choix recalcule le plan.',
'Achats supplémentaires du plan entier : ~%s','%d types sans couverture complète de prix ou quantité',
'Frais des autres artisans inconnus et exclus.','Station, source choisie ou dépendance indisponible.',
'Estimation minimale parmi les variantes entièrement évaluées.','%s de moins que le plan actuel','%s de plus que le plan actuel',
'%d fabrications / %d objets produits','Aperçu limité : certaines variantes ou certains prix non comparés.'},
esES={'Comparar fuentes','Receta automática','Obtener ya fabricado',
'Estimación de subasta para las carencias de todo el plan con bolsas/banco compartidos. Recolección, vendedores y tarifas excluidos. Elegir recalcula el plan.',
'Compras adicionales para todo el plan: ~%s','%d tipos sin cobertura completa de precio o cantidad',
'Las tarifas de otros artesanos son desconocidas y no se incluyen.','Estación, fuente elegida o dependencia no disponible.',
'Menor compra estimada entre variantes totalmente valoradas.','%s menos que el plan actual','%s más que el plan actual',
'%d fabricaciones / %d objetos producidos','Vista limitada: algunas variantes o precios no se comparan.'},
itIT={'Confronta fonti','Ricetta automatica','Ottieni già pronto',
'Stima d’asta delle carenze dell’intero piano con borse/banca condivise. Raccolta, venditori e compensi esclusi. La scelta ricalcola il piano.',
'Acquisti aggiuntivi dell’intero piano: ~%s','%d tipi senza copertura completa di prezzo o quantità',
'Compensi degli altri artigiani sconosciuti ed esclusi.','Stazione, fonte scelta o dipendenza non disponibile.',
'Minore acquisto stimato tra varianti interamente valutate.','%s meno del piano attuale','%s più del piano attuale',
'%d creazioni / %d oggetti prodotti','Anteprima limitata: alcune varianti o prezzi non confrontati.'},
ptBR={'Comparar fontes','Receita automática','Obter pronto',
'Estimativa de leilão das faltas de todo o plano com bolsas/banco compartilhados. Coleta, vendedores e taxas excluídos. A escolha recalcula o plano.',
'Compras adicionais de todo o plano: ~%s','%d tipos sem cobertura completa de preço ou quantidade',
'Taxas de outros artesãos são desconhecidas e excluídas.','Estação, fonte escolhida ou dependência indisponível.',
'Menor compra estimada entre variantes totalmente avaliadas.','%s menos que o plano atual','%s mais que o plano atual',
'%d criações / %d itens produzidos','Prévia limitada: algumas variantes ou preços não comparados.'},
koKR={'공급 방법 비교','도안 자동 선택','완성품 구하기',
'공유 가방과 은행을 먼저 사용한 전체 계획 부족분의 경매 추정치입니다. 채집, 상인과 제작 수수료는 제외됩니다. 선택하면 재계산합니다.',
'전체 계획의 추가 구매 비용: ~%s','가격 또는 수량이 완전히 확인되지 않은 종류: %d',
'다른 제작자의 수수료는 알 수 없으며 제외됩니다.','시설, 선택한 공급 방법 또는 의존 재료를 사용할 수 없습니다.',
'전체 가격이 확인된 선택지 중 최소 구매 추정치입니다.','현재 계획보다 %s 적음','현재 계획보다 %s 많음',
'제작 %d회 / 생산 %d개','제한된 미리보기: 일부 선택지 또는 가격은 비교되지 않았습니다.'},
zhCN={'比较获取方式','自动选择配方','获取成品',
'先使用共享背包和银行,估算整个计划缺口的拍卖购买费用。不含采集、商人和制作费用。选择后重新计算。',
'整个计划额外购买费用:~%s','缺少完整价格或数量覆盖的种类:%d',
'其他工匠的费用未知,未计入。','设施、所选来源或依赖材料不可用。',
'完整估价选项中最低的购买估算。','比当前计划少%s','比当前计划多%s',
'制作%d次 / 产出%d个','预览有限:部分选项或价格未比较。'},
zhTW={'比較取得方式','自動選擇配方','取得成品',
'先使用共用背包和銀行,估算整個計劃缺口的拍賣購買費用。不含採集、商人和製作費用。選擇後重新計算。',
'整個計劃額外購買費用:~%s','缺少完整價格或數量覆蓋的種類:%d',
'其他工匠的費用未知,未計入。','設施、所選來源或依賴材料不可用。',
'完整估價選項中最低的購買估算。','比目前計劃少%s','比目前計劃多%s',
'製作%d次 / 產出%d個','預覽有限:部分選項或價格未比較。'},
}
costs.enGB=costs.enUS; costs.esMX=costs.esES
for locale,values in pairs(costs) do for i,key in ipairs(costKeys) do F.Locales[locale][key]=values[i] end end
local setKeys={'SETS_TITLE','SETS_SAVE','SETS_HELP','SETS_LIST','SETS_EMPTY','SETS_COUNT','SETS_OPEN','SETS_DELETE',
'SETS_NAME_ERROR','SETS_FULL','SETS_MISSING','SETS_SOURCES_FULL','SETS_REPLACE','SETS_APPEND','SETS_SAVE_HELP',
'SETS_LOAD_HELP','SETS_CONFLICTS','SETS_CLEAN','SETS_CLEAN_HELP','SETS_REMOVED','SETS_UNDO','SETS_STOCK','SETS_GROUP_HELP'}
local sets={
enUS={'Goal sets','Save set','Up to 10 private sets per character. Goals, quantities and material sources are saved.',
'Saved sets','No saved sets.','%d goals','Open set','Delete set','Enter a short, nonempty name without control characters or |.',
'All 10 set slots are used. Save with an existing name to update it.','This set no longer exists.','Too many material-source choices (200).',
'Replace queue','Append goals','Name this queue. Saving with the same name replaces that saved set. Inventory is recalculated when loading.',
'Review the goals below. Replace the queue or append goals. Appending keeps current material sources when they conflict.',
'Kept current sources for %d conflicting materials.','Remove owned goals',
'Removes only goals fully covered by finished items allocated from your bags, in queue order. Bank snapshots and planned crafts do not count.',
'Removed goals: %d','Undo queue change','Finished items from stock: %d/%d','Repeated goals for one item are removed together only when all are covered.'},
ruRU={'Наборы целей','Сохранить набор','До 10 личных наборов на персонажа. Сохраняются цели, количество и способы получения реагентов.',
'Мои наборы','Сохранённых наборов нет.','Целей: %d','Открыть набор','Удалить набор','Введите короткое непустое имя без управляющих символов и |.',
'Все 10 мест заняты. Для обновления набора сохраните его с прежним именем.','Этого набора больше нет.','Слишком много способов получения реагентов (200).',
'Заменить очередь','Добавить цели','Назовите эту очередь. Прежний набор с таким именем будет заменён. При загрузке запасы пересчитываются.',
'Проверьте цели ниже. Замените очередь или добавьте цели в конец. При добавлении сохраняются текущие способы получения спорных реагентов.',
'Для %d реагентов сохранены текущие способы получения.','Убрать собранное',
'Убирает цели, полностью покрытые готовыми вещами в сумках, с учётом порядка очереди. Снимок банка и будущие крафты не считаются.',
'Убрано целей: %d','Отменить изменение','Готовых вещей из запасов: %d/%d','Повторяющиеся цели на один предмет убираются вместе, когда покрыт весь их объём.'},
deDE={'Zielsätze','Satz speichern','Bis zu 10 private Sätze pro Charakter. Ziele, Mengen und Materialquellen werden gespeichert.',
'Gespeicherte Sätze','Keine gespeicherten Sätze.','%d Ziele','Satz öffnen','Satz löschen','Gib einen kurzen Namen ohne Steuerzeichen oder | ein.',
'Alle 10 Plätze belegt. Speichere unter einem vorhandenen Namen zum Aktualisieren.','Dieser Satz existiert nicht mehr.','Zu viele Materialquellen (200).',
'Warteschlange ersetzen','Ziele anhängen','Benenne diese Warteschlange. Derselbe Name ersetzt den gespeicherten Satz. Vorräte werden beim Laden neu berechnet.',
'Prüfe die Ziele unten. Ersetze die Warteschlange oder hänge Ziele an. Bei Konflikten bleiben beim Anhängen die aktuellen Materialquellen.',
'Aktuelle Quellen für %d widersprüchliche Materialien behalten.','Vorhandene Ziele entfernen',
'Entfernt nur Ziele, die durch fertige Gegenstände in deinen Taschen in Reihenfolge vollständig gedeckt sind. Bankdaten und geplante Herstellung zählen nicht.',
'Entfernte Ziele: %d','Änderung rückgängig','Fertige Gegenstände aus Vorräten: %d/%d','Mehrere Ziele für denselben Gegenstand werden nur gemeinsam entfernt, wenn alle gedeckt sind.'},
frFR={'Ensembles d’objectifs','Enregistrer','Jusqu’à 10 ensembles privés par personnage. Objectifs, quantités et sources sont enregistrés.',
'Ensembles enregistrés','Aucun ensemble enregistré.','%d objectifs','Ouvrir','Supprimer','Saisissez un nom court sans caractères de contrôle ni |.',
'Les 10 emplacements sont utilisés. Réutilisez un nom pour mettre à jour un ensemble.','Cet ensemble n’existe plus.','Trop de sources de matériaux (200).',
'Remplacer la file','Ajouter les objectifs','Nommez cette file. Le même nom remplace l’ensemble enregistré. Les stocks sont recalculés au chargement.',
'Vérifiez les objectifs ci-dessous. Remplacez la file ou ajoutez les objectifs. L’ajout conserve les sources actuelles en cas de conflit.',
'Sources actuelles conservées pour %d matériaux en conflit.','Retirer les objectifs acquis',
'Retire uniquement les objectifs entièrement couverts par les objets finis des sacs, dans l’ordre de la file. La banque et les fabrications prévues ne comptent pas.',
'Objectifs retirés : %d','Annuler la modification','Objets finis du stock : %d/%d','Les objectifs du même objet sont retirés ensemble uniquement lorsqu’ils sont tous couverts.'},
esES={'Conjuntos de objetivos','Guardar conjunto','Hasta 10 conjuntos privados por personaje. Guarda objetivos, cantidades y fuentes de materiales.',
'Conjuntos guardados','No hay conjuntos guardados.','%d objetivos','Abrir conjunto','Eliminar conjunto','Escribe un nombre corto sin caracteres de control ni |.',
'Los 10 espacios están ocupados. Usa un nombre existente para actualizarlo.','Este conjunto ya no existe.','Demasiadas fuentes de materiales (200).',
'Reemplazar cola','Añadir objetivos','Nombra esta cola. El mismo nombre reemplaza el conjunto guardado. Las existencias se recalculan al cargar.',
'Revisa los objetivos. Reemplaza la cola o añade objetivos. Al añadir, se conservan las fuentes actuales en caso de conflicto.',
'Se conservaron las fuentes actuales para %d materiales en conflicto.','Quitar objetivos obtenidos',
'Solo quita objetivos cubiertos por objetos terminados de las bolsas, en orden de cola. No cuenta el banco guardado ni las fabricaciones previstas.',
'Objetivos quitados: %d','Deshacer cambio','Objetos terminados del inventario: %d/%d','Los objetivos del mismo objeto se quitan juntos solo cuando todos están cubiertos.'},
itIT={'Gruppi di obiettivi','Salva gruppo','Fino a 10 gruppi privati per personaggio. Salva obiettivi, quantità e fonti dei materiali.',
'Gruppi salvati','Nessun gruppo salvato.','%d obiettivi','Apri gruppo','Elimina gruppo','Inserisci un nome breve senza caratteri di controllo o |.',
'Tutti i 10 posti sono occupati. Usa un nome esistente per aggiornarlo.','Questo gruppo non esiste più.','Troppe fonti di materiali (200).',
'Sostituisci coda','Aggiungi obiettivi','Dai un nome alla coda. Lo stesso nome sostituisce il gruppo salvato. Le scorte vengono ricalcolate al caricamento.',
'Controlla gli obiettivi. Sostituisci la coda o aggiungili. L’aggiunta mantiene le fonti attuali in caso di conflitto.',
'Fonti attuali mantenute per %d materiali in conflitto.','Rimuovi obiettivi ottenuti',
'Rimuove solo gli obiettivi coperti interamente da oggetti finiti nelle borse, in ordine di coda. Banca salvata e creazioni previste non contano.',
'Obiettivi rimossi: %d','Annulla modifica','Oggetti finiti dalle scorte: %d/%d','Gli obiettivi dello stesso oggetto vengono rimossi insieme solo se sono tutti coperti.'},
ptBR={'Conjuntos de metas','Salvar conjunto','Até 10 conjuntos privados por personagem. Salva metas, quantidades e fontes de materiais.',
'Conjuntos salvos','Nenhum conjunto salvo.','%d metas','Abrir conjunto','Excluir conjunto','Digite um nome curto sem caracteres de controle ou |.',
'Os 10 espaços estão ocupados. Use um nome existente para atualizá-lo.','Este conjunto não existe mais.','Fontes de materiais demais (200).',
'Substituir fila','Adicionar metas','Nomeie esta fila. O mesmo nome substitui o conjunto salvo. Os estoques são recalculados ao carregar.',
'Confira as metas abaixo. Substitua a fila ou adicione metas. Ao adicionar, as fontes atuais são mantidas em caso de conflito.',
'Fontes atuais mantidas para %d materiais em conflito.','Remover metas obtidas',
'Remove apenas metas totalmente cobertas por itens prontos nas bolsas, na ordem da fila. Banco salvo e criações planejadas não contam.',
'Metas removidas: %d','Desfazer alteração','Itens prontos do estoque: %d/%d','Metas do mesmo item são removidas juntas apenas quando todas estão cobertas.'},
koKR={'목표 세트','세트 저장','캐릭터당 개인 세트 10개를 저장합니다. 목표, 수량과 재료 공급 방법이 저장됩니다.',
'저장된 세트','저장된 세트가 없습니다.','목표 %d개','세트 열기','세트 삭제','제어 문자나 | 없이 짧은 이름을 입력하세요.',
'세트 10개가 모두 사용 중입니다. 기존 이름으로 저장하면 갱신됩니다.','이 세트는 더 이상 없습니다.','재료 공급 방법이 너무 많습니다 (200).',
'대기열 교체','목표 추가','대기열 이름을 입력하세요. 같은 이름의 세트는 교체됩니다. 불러올 때 현재 재고로 다시 계산합니다.',
'아래 목표를 확인하세요. 대기열을 교체하거나 목표를 추가합니다. 추가 시 충돌하는 재료는 현재 공급 방법을 유지합니다.',
'충돌하는 재료 %d개의 현재 공급 방법을 유지했습니다.','보유 목표 제거',
'대기열 순서대로 가방의 완성품으로 완전히 충족된 목표만 제거합니다. 저장된 은행 재고와 예정된 제작은 포함하지 않습니다.',
'제거된 목표: %d','변경 취소','재고의 완성품: %d/%d','같은 아이템의 반복 목표는 전체 수량을 충족했을 때 함께 제거됩니다.'},
zhCN={'目标套组','保存套组','每个角色最多10个私人套组。保存目标、数量和材料来源。',
'已存套组','没有已存套组。','%d个目标','打开套组','删除套组','请输入不含控制字符或|的简短名称。',
'10个位置已满。使用现有名称保存即可更新。','此套组已不存在。','材料来源过多(200)。',
'替换队列','追加目标','为队列命名。同名套组会被替换。加载时根据当前库存重新计算。',
'请检查以下目标。替换队列或追加目标。追加时,冲突材料保留当前来源。',
'已为%d种冲突材料保留当前来源。','移除已持有目标',
'按队列顺序,仅移除可由背包成品完全满足的目标。银行快照和计划制作不计入。',
'已移除目标:%d','撤销更改','库存成品:%d/%d','同一物品的重复目标仅在全部满足后一起移除。'},
zhTW={'目標套組','儲存套組','每個角色最多10個私人套組。儲存目標、數量和材料來源。',
'已存套組','沒有已存套組。','%d個目標','開啟套組','刪除套組','請輸入不含控制字元或|的簡短名稱。',
'10個位置已滿。使用現有名稱儲存即可更新。','此套組已不存在。','材料來源過多(200)。',
'取代佇列','追加目標','為佇列命名。同名套組會被取代。載入時根據目前庫存重新計算。',
'請檢查以下目標。取代佇列或追加目標。追加時,衝突材料保留目前來源。',
'已為%d種衝突材料保留目前來源。','移除已持有目標',
'依佇列順序,僅移除可由背包成品完全滿足的目標。銀行快照和計劃製作不計入。',
'已移除目標:%d','復原更改','庫存成品:%d/%d','同一物品的重複目標僅在全部滿足後一起移除。'},
}
sets.enGB=sets.enUS; sets.esMX=sets.esES
for locale,values in pairs(sets) do for i,key in ipairs(setKeys) do F.Locales[locale][key]=values[i] end end
local stockKeys={'RESTOCK_MODE','RESTOCK_ENABLE','RESTOCK_ONCE','RESTOCK_TARGET','RESTOCK_DUPLICATE','RESTOCK_HELP','RESTOCK_PROGRESS','RESTOCK_READY'}
local stock={
enUS={'Maintain stock','Maintain this stock','Use one-time goal','Stock',
'A stock target already exists for this item. Edit that target instead of adding another.',
'Enable Maintain stock on a goal to keep it after cleanup and refill after use. Quantity is the desired stock. Bags and enabled saved bank share allocations with all goals; crafting remains manual.',
'Allocated: %d carried / %d saved bank / target %d',
'Stock target met. The goal stays and recalculates after items are used.'},
ruRU={'Постоянный запас','Поддерживать запас','Сделать разовой целью','Запас',
'Для этого предмета уже есть постоянный запас. Измените его количество вместо добавления второго правила.',
'Включите «Поддерживать запас» у цели: она останется после очистки и снова покажет дефицит при расходовании. Количество задаёт желаемый запас. Сумки и включённый снимок банка распределяются между всеми целями; изготовление ручное.',
'Учтено для цели: %d в сумках / %d в банке / нужно %d',
'Запас достигнут. Цель остаётся и пересчитывается после расходования вещей.'},
deDE={'Vorrat halten','Diesen Vorrat halten','Einmaliges Ziel','Vorrat',
'Für diesen Gegenstand gibt es bereits ein Vorratsziel. Ändere dessen Menge statt ein weiteres hinzuzufügen.',
'Aktiviere Vorrat halten, damit das Ziel nach dem Aufräumen bleibt und nach Verbrauch erneut aufgefüllt wird. Menge ist der gewünschte Vorrat. Taschen und aktivierte Bankdaten werden zwischen allen Zielen geteilt; Herstellung bleibt manuell.',
'Zugeteilt: %d getragen / %d gespeicherte Bank / Ziel %d',
'Vorratsziel erreicht. Das Ziel bleibt und wird nach Verbrauch neu berechnet.'},
frFR={'Maintenir le stock','Maintenir ce stock','Objectif ponctuel','Stock',
'Un objectif de stock existe déjà pour cet objet. Modifiez sa quantité plutôt que d’en ajouter un autre.',
'Activez Maintenir le stock pour conserver cet objectif après nettoyage et le remplir après utilisation. La quantité est le stock souhaité. Sacs et banque enregistrée activée sont partagés entre les objectifs ; fabrication manuelle.',
'Affecté : %d transportés / %d en banque enregistrée / cible %d',
'Stock atteint. L’objectif reste et se recalcule après utilisation des objets.'},
esES={'Mantener existencias','Mantener este stock','Objetivo único','Stock',
'Ya existe un objetivo de existencias para este objeto. Cambia su cantidad en lugar de añadir otro.',
'Activa Mantener existencias para conservar el objetivo al limpiar y reponerlo tras el uso. La cantidad es el stock deseado. Bolsas y banco guardado activado se comparten entre objetivos; la fabricación es manual.',
'Asignado: %d en bolsas / %d en banco guardado / objetivo %d',
'Stock alcanzado. El objetivo permanece y se recalcula al usar los objetos.'},
itIT={'Mantieni scorte','Mantieni queste scorte','Obiettivo singolo','Scorte',
'Esiste già un obiettivo di scorte per questo oggetto. Modifica la sua quantità invece di aggiungerne un altro.',
'Attiva Mantieni scorte per conservare l’obiettivo dopo la pulizia e rifornirlo dopo l’uso. La quantità indica le scorte desiderate. Borse e banca salvata attiva sono condivise tra gli obiettivi; creazione manuale.',
'Assegnato: %d nelle borse / %d in banca salvata / obiettivo %d',
'Scorte raggiunte. L’obiettivo rimane e si ricalcola dopo l’uso degli oggetti.'},
ptBR={'Manter estoque','Manter este estoque','Meta única','Estoque',
'Já existe uma meta de estoque para este item. Edite a quantidade em vez de adicionar outra.',
'Ative Manter estoque para conservar a meta após a limpeza e repor após o uso. A quantidade é o estoque desejado. Bolsas e banco salvo ativado são compartilhados entre metas; fabricação manual.',
'Alocado: %d nas bolsas / %d no banco salvo / meta %d',
'Estoque atingido. A meta permanece e é recalculada após o uso dos itens.'},
koKR={'재고 유지','이 재고 유지','일회성 목표로 변경','재고',
'이 아이템의 재고 목표가 이미 있습니다. 새로 추가하지 말고 기존 목표의 수량을 수정하세요.',
'재고 유지를 켜면 정리 후에도 목표가 남고 사용 후 다시 보충합니다. 수량은 원하는 재고입니다. 가방과 활성화된 저장 은행 재고를 모든 목표가 공유하며 제작은 수동입니다.',
'배정: 가방 %d개 / 저장 은행 %d개 / 목표 %d개',
'목표 재고를 충족했습니다. 목표는 유지되며 아이템 사용 후 다시 계산합니다.'},
zhCN={'维持库存','维持此库存','改为一次性目标','库存',
'此物品已有库存目标。请修改其数量,不要再添加一个。',
'开启维持库存后,目标在清理后仍保留,使用物品后重新补货。数量为期望库存。所有目标共享背包和已启用的银行快照;制作仍需手动。',
'已分配:背包%d / 银行快照%d / 目标%d',
'已达到库存目标。目标会保留,并在使用物品后重新计算。'},
zhTW={'維持庫存','維持此庫存','改為一次性目標','庫存',
'此物品已有庫存目標。請修改其數量,不要再新增一個。',
'開啟維持庫存後,目標在清理後仍保留,使用物品後重新補貨。數量為期望庫存。所有目標共用背包和已啟用的銀行快照;製作仍需手動。',
'已分配:背包%d / 銀行快照%d / 目標%d',
'已達到庫存目標。目標會保留,並在使用物品後重新計算。'},
}
stock.enGB=stock.enUS; stock.esMX=stock.esES
for locale,values in pairs(stock) do for i,key in ipairs(stockKeys) do F.Locales[locale][key]=values[i] end end
local finderKeys={'FINDER_BUTTON','PAGE_crafters','EMPTY_crafters','FINDER_NO_OUTPUT','FINDER_LOOKUP_ONLY','FINDER_HELP',
'FINDER_COUNT','FINDER_PICK','FINDER_NETWORK','FINDER_PROFILE','FINDER_PLAN','FINDER_RECIPE','FINDER_RECIPES',
'FINDER_AGE_UNKNOWN','FINDER_SKILL_UNKNOWN','FINDER_CHANGED','FINDER_VARIANT_LIMIT','FINDER_PLAYER_LIMIT'}
local finder={
enUS={'Find a crafter','Find crafters','No other known crafters for this item. Enable sharing and sync with your group or guild.',
'This recipe has no supported item output for lookup.','Crafter lookup is available; this recipe will not be added to your profile.',
'Matches use the base item ID. Profiles may be saved data; online presence, item variants and fees are unconfirmed. Crafting facilities are checked in the plan. No messages are sent.',
'%d other known crafters','Select a crafter to inspect matching recipes.','All network players','Open profile','Plan with this crafter','Open recipe','Matching recipes',
'Profile age unknown.','Skill not reported','This crafter or recipe changed. Refresh the results.',
'First %d variants shown. Open the profile for the full list.','First %d players shown here. Select any player on the left or narrow the search.'},
ruRU={'Найти мастера','Поиск мастеров','Другие мастера этого предмета пока неизвестны. Включите обмен и обновите данные в группе или гильдии.',
'У этого рецепта нет поддерживаемого предмета-результата для поиска.','Можно найти мастера; этот рецепт не будет добавлен в ваш профиль.',
'Поиск по базовому ID предмета. Профили могут быть сохранёнными: онлайн, варианты вещи и плата не подтверждены. Доступность лагерных объектов проверяется в плане. Сообщения не отправляются.',
'Известно других мастеров: %d','Выберите мастера для просмотра подходящих рецептов.','Все игроки сети','Открыть профиль','План с этим мастером','Открыть рецепт','Подходящие рецепты',
'Возраст профиля неизвестен.','Навык не указан','Мастер или рецепт изменился. Обновите результаты.',
'Показаны первые %d вариантов. Полный список доступен в профиле.','Здесь показаны первые %d игроков. Выберите любого слева или уточните поиск.'},
deDE={'Handwerker finden','Handwerker suchen','Keine anderen bekannten Handwerker für diesen Gegenstand. Aktiviere Austausch und synchronisiere mit Gruppe oder Gilde.',
'Dieses Rezept hat keinen unterstützten Gegenstand als Ergebnis für die Suche.','Handwerkersuche verfügbar; dieses Rezept wird deinem Profil nicht hinzugefügt.',
'Abgleich über die Basis-Gegenstands-ID. Profile können gespeichert sein; Online-Status, Varianten und Gebühren sind unbestätigt. Einrichtungen werden im Plan geprüft. Es werden keine Nachrichten gesendet.',
'%d andere bekannte Handwerker','Wähle einen Handwerker für passende Rezepte.','Alle Netzwerkspieler','Profil öffnen','Plan mit Handwerker','Rezept öffnen','Passende Rezepte',
'Profilalter unbekannt.','Fertigkeit nicht gemeldet','Handwerker oder Rezept hat sich geändert. Aktualisiere die Ergebnisse.',
'Erste %d Varianten angezeigt. Die vollständige Liste steht im Profil.','Hier werden die ersten %d Spieler angezeigt. Wähle links einen Spieler oder grenze die Suche ein.'},
frFR={'Trouver un artisan','Chercher des artisans','Aucun autre artisan connu pour cet objet. Activez le partage et synchronisez avec votre groupe ou guilde.',
'Cette recette n’a pas d’objet produit compatible pour la recherche.','Recherche d’artisan disponible ; cette recette ne sera pas ajoutée à votre profil.',
'Correspondance par identifiant de base de l’objet. Les profils peuvent être enregistrés ; présence en ligne, variantes et frais non confirmés. Les installations sont vérifiées dans le plan. Aucun message envoyé.',
'%d autres artisans connus','Choisissez un artisan pour consulter ses recettes.','Tous les joueurs du réseau','Ouvrir le profil','Plan avec cet artisan','Ouvrir la recette','Recettes correspondantes',
'Âge du profil inconnu.','Compétence non indiquée','L’artisan ou la recette a changé. Actualisez les résultats.',
'Les %d premières variantes sont affichées. Liste complète dans le profil.','Les %d premiers joueurs sont affichés ici. Choisissez à gauche ou affinez la recherche.'},
esES={'Buscar artesano','Buscar artesanos','No hay otros artesanos conocidos para este objeto. Activa el intercambio y sincroniza con tu grupo o hermandad.',
'Esta receta no produce un objeto compatible con la búsqueda.','Puedes buscar un artesano; esta receta no se añadirá a tu perfil.',
'Coincide por ID base del objeto. Los perfiles pueden estar guardados; conexión, variantes y tarifas no confirmadas. Las instalaciones se comprueban en el plan. No se envían mensajes.',
'%d otros artesanos conocidos','Selecciona un artesano para ver sus recetas.','Todos los jugadores de la red','Abrir perfil','Plan con este artesano','Abrir receta','Recetas coincidentes',
'Antigüedad del perfil desconocida.','Habilidad no indicada','El artesano o la receta ha cambiado. Actualiza los resultados.',
'Se muestran las primeras %d variantes. Lista completa en el perfil.','Aquí se muestran los primeros %d jugadores. Selecciona cualquiera a la izquierda o filtra la búsqueda.'},
itIT={'Trova artigiano','Cerca artigiani','Nessun altro artigiano noto per questo oggetto. Attiva la condivisione e sincronizza con gruppo o gilda.',
'Questa ricetta non produce un oggetto supportato per la ricerca.','Ricerca artigiani disponibile; questa ricetta non verrà aggiunta al tuo profilo.',
'Ricerca tramite ID base dell’oggetto. I profili possono essere salvati; presenza online, varianti e compensi non confermati. Le strutture vengono verificate nel piano. Nessun messaggio inviato.',
'%d altri artigiani noti','Scegli un artigiano per vedere le ricette adatte.','Tutti i giocatori della rete','Apri profilo','Piano con artigiano','Apri ricetta','Ricette corrispondenti',
'Età del profilo sconosciuta.','Competenza non indicata','Artigiano o ricetta modificati. Aggiorna i risultati.',
'Prime %d varianti mostrate. Elenco completo nel profilo.','Qui sono mostrati i primi %d giocatori. Scegli a sinistra o restringi la ricerca.'},
ptBR={'Encontrar artesão','Buscar artesãos','Nenhum outro artesão conhecido para este item. Ative a troca e sincronize com seu grupo ou guilda.',
'Esta receita não produz um item compatível com a busca.','A busca de artesão está disponível; esta receita não será adicionada ao seu perfil.',
'Busca pelo ID base do item. Perfis podem ser dados salvos; presença online, variantes e taxas não confirmadas. Instalações são verificadas no plano. Nenhuma mensagem é enviada.',
'%d outros artesãos conhecidos','Escolha um artesão para ver receitas compatíveis.','Todos os jogadores da rede','Abrir perfil','Plano com este artesão','Abrir receita','Receitas compatíveis',
'Idade do perfil desconhecida.','Perícia não informada','O artesão ou a receita mudou. Atualize os resultados.',
'Primeiras %d variantes exibidas. Lista completa no perfil.','Os primeiros %d jogadores são exibidos aqui. Escolha à esquerda ou refine a busca.'},
koKR={'제작자 찾기','제작자 검색','이 아이템을 제작하는 다른 알려진 제작자가 없습니다. 공유를 켜고 파티 또는 길드와 동기화하세요.',
'이 도안에는 검색에 지원되는 결과 아이템이 없습니다.','제작자 검색은 가능합니다. 이 도안은 내 프로필에 추가되지 않습니다.',
'기본 아이템 ID로 검색합니다. 프로필은 저장된 자료일 수 있으며 접속 여부, 아이템 변형과 수수료는 확인되지 않았습니다. 시설은 계획에서 확인합니다. 메시지는 보내지 않습니다.',
'알려진 다른 제작자 %d명','제작자를 선택해 해당 도안을 확인하세요.','네트워크의 모든 플레이어','프로필 열기','이 제작자로 계획','도안 열기','해당 도안',
'프로필 갱신 시간 불명.','숙련도 미보고','제작자 또는 도안이 변경되었습니다. 결과를 새로 고치세요.',
'처음 %d개 변형이 표시됩니다. 전체 목록은 프로필에서 확인하세요.','여기에는 처음 %d명의 플레이어가 표시됩니다. 왼쪽에서 선택하거나 검색을 좁히세요.'},
zhCN={'寻找工匠','工匠搜索','尚无已知的其他工匠制作此物品。请开启共享并与队伍或公会同步。',
'此配方没有可用于搜索的受支持产物。','可以寻找工匠;此配方不会加入你的档案。',
'按基础物品ID匹配。档案可能是保存的数据;在线状态、物品变体和费用未确认。设施可用性在计划中检查。不会发送消息。',
'已知其他工匠:%d','选择工匠以查看匹配的配方。','网络全部玩家','打开档案','使用此工匠规划','打开配方','匹配配方',
'档案更新时间未知。','技能未报告','工匠或配方已更改。请刷新结果。',
'显示前%d个变体。完整列表在档案中。','这里显示前%d位玩家。请在左侧选择或缩小搜索范围。'},
zhTW={'尋找工匠','工匠搜尋','尚無已知的其他工匠製作此物品。請開啟共享並與隊伍或公會同步。',
'此配方沒有可用於搜尋的支援產物。','可以尋找工匠;此配方不會加入你的檔案。',
'依基礎物品ID比對。檔案可能是儲存的資料;線上狀態、物品變體和費用未確認。設施可用性在計劃中檢查。不會傳送訊息。',
'已知其他工匠:%d','選擇工匠以查看符合的配方。','網路全部玩家','開啟檔案','使用此工匠規劃','開啟配方','符合配方',
'檔案更新時間未知。','技能未回報','工匠或配方已變更。請重新整理結果。',
'顯示前%d個變體。完整列表在檔案中。','這裡顯示前%d位玩家。請在左側選擇或縮小搜尋範圍。'},
}
finder.enGB=finder.enUS; finder.esMX=finder.esES
for locale,values in pairs(finder) do for i,key in ipairs(finderKeys) do F.Locales[locale][key]=values[i] end end
local throttle={
enUS='The client is limiting the send rate. Messages are queued and will retry automatically.',
ruRU='Клиент ограничивает частоту отправки. Сообщения в очереди; повторная отправка автоматическая.',
deDE='Der Client begrenzt die Senderate. Nachrichten bleiben in der Warteschlange und werden automatisch erneut gesendet.',
frFR='Le client limite la fréquence d’envoi. Les messages restent en file et seront renvoyés automatiquement.',
esES='El cliente limita la frecuencia de envío. Los mensajes siguen en la cola y se reintentarán automáticamente.',
itIT='Il client limita la frequenza di invio. I messaggi restano in coda e saranno ritentati automaticamente.',
ptBR='O cliente limita a frequência de envio. As mensagens ficam na fila e serão reenviadas automaticamente.',
koKR='클라이언트가 전송 빈도를 제한합니다. 메시지는 대기열에 유지되며 자동으로 재전송됩니다.',
zhCN='客户端正在限制发送频率。消息保留在队列中并会自动重试。',
zhTW='用戶端正在限制傳送頻率。訊息保留在佇列中並會自動重試。',
}
throttle.enGB=throttle.enUS; throttle.esMX=throttle.esES
for locale,text in pairs(throttle) do F.Locales[locale].NET_THROTTLE=text end
local visualKeys={'VIS_TARGET','VIS_OWNED','VIS_CRAFTS','VIS_COST','VIS_GET','VIS_MAKE','VIS_DETAILS','VIS_TOOLS','VIS_SOURCES','VIS_QUEUE_MINI'}
local visual={
enUS={'Wanted','Owned','Crafts','Purchases','Get','Craft','Details','Manage queue','Material choices','%d goals / %d missing'},
ruRU={'Нужно','Есть','Крафтов','Покупки','Получить','Изготовить','Подробнее','Управление очередью','Выбор материалов','%d целей / %d не хватает'},
deDE={'Ziel','Vorhanden','Herstellungen','Einkäufe','Besorgen','Herstellen','Details','Warteschlange verwalten','Materialauswahl','%d Ziele / %d fehlen'},
frFR={'Objectif','Possédé','Fabrications','Achats','Obtenir','Fabriquer','Détails','Gérer la file','Choix des matériaux','%d objectifs / %d manquants'},
esES={'Objetivo','Disponible','Fabricaciones','Compras','Conseguir','Fabricar','Detalles','Gestionar cola','Elegir materiales','%d objetivos / %d faltantes'},
itIT={'Obiettivo','Posseduti','Creazioni','Acquisti','Ottieni','Crea','Dettagli','Gestisci coda','Scelta materiali','%d obiettivi / %d mancanti'},
ptBR={'Objetivo','Disponível','Criações','Compras','Obter','Criar','Detalhes','Gerenciar fila','Escolher materiais','%d objetivos / %d faltando'},
koKR={'목표','보유','제작 횟수','구매','확보','제작','자세히','대기열 관리','재료 선택','목표 %d / 부족 %d'},
zhCN={'目标','拥有','制作次数','购买','获取','制作','详情','管理队列','材料选择','%d个目标 / %d种缺少'},
zhTW={'目標','擁有','製作次數','購買','取得','製作','詳情','管理佇列','材料選擇','%d個目標 / 缺少%d種'},
}
visual.enGB=visual.enUS; visual.esMX=visual.esES
for locale,values in pairs(visual) do for i,key in ipairs(visualKeys) do F.Locales[locale][key]=values[i] end end
local ready={enUS={'Materials ready','Goals'},ruRU={'Материалы готовы','Целей'},deDE={'Material bereit','Ziele'},frFR={'Matériaux prêts','Objectifs'},esES={'Materiales listos','Objetivos'},itIT={'Materiali pronti','Obiettivi'},ptBR={'Materiais prontos','Objetivos'},koKR={'재료 준비됨','목표'},zhCN={'材料齐全','目标'},zhTW={'材料齊全','目標'}}
ready.enGB=ready.enUS; ready.esMX=ready.esES
for locale,values in pairs(ready) do F.Locales[locale].VIS_READY=values[1]; F.Locales[locale].VIS_GOALS=values[2] end
local auto={
enUS={'Scan my recipes when opening a profession','Automatically choose the lowest known purchase cost'},
ruRU={'Сканировать рецепты при открытии профессии','Автоматически выбирать наименьшую известную стоимость покупки'},
deDE={'Rezepte beim Öffnen eines Berufs scannen','Automatisch die niedrigsten bekannten Einkaufskosten wählen'},
frFR={'Analyser mes recettes à l’ouverture d’un métier','Choisir automatiquement le coût d’achat connu le plus bas'},
esES={'Escanear mis recetas al abrir una profesión','Elegir automáticamente el menor coste de compra conocido'},
itIT={'Scansiona ricette quando apro una professione','Scegli automaticamente il costo di acquisto noto più basso'},
ptBR={'Escanear receitas ao abrir uma profissão','Escolher automaticamente o menor custo de compra conhecido'},
koKR={'전문 기술을 열면 내 조리법 검색','알려진 최소 구매 비용을 자동 선택'},
zhCN={'打开专业时扫描我的配方','自动选择已知最低购买成本'},
zhTW={'開啟專業時掃描我的配方','自動選擇已知最低購買成本'},
}
auto.enGB=auto.enUS; auto.esMX=auto.esES
for locale,values in pairs(auto) do
F.Locales[locale].SETTING_AUTOSCAN=values[1]; F.Locales[locale].SETTING_AUTOSOURCES=values[2]
end
local board={enUS={'Materials','Maintain stock','Next step'},ruRU={'Материалы','Поддерживать запас','Следующий шаг'},deDE={'Materialien','Vorrat halten','Nächster Schritt'},frFR={'Matériaux','Maintenir le stock','Étape suivante'},esES={'Materiales','Mantener existencias','Siguiente paso'},itIT={'Materiali','Mantieni scorte','Passo successivo'},ptBR={'Materiais','Manter estoque','Próximo passo'},koKR={'재료','재고 유지','다음 단계'},zhCN={'材料','维持库存','下一步'},zhTW={'材料','維持庫存','下一步'}}
board.enGB=board.enUS; board.esMX=board.esES
for locale,values in pairs(board) do F.Locales[locale].QB_MATERIALS=values[1]; F.Locales[locale].QB_STOCK=values[2]; F.Locales[locale].QB_NEXT=values[3] end
local boardTabs={enUS={'All materials','Crafts'},ruRU={'Все материалы','Крафт'},deDE={'Alle Materialien','Herstellungen'},frFR={'Tous les matériaux','Fabrications'},esES={'Todos los materiales','Fabricación'},itIT={'Tutti i materiali','Creazione'},ptBR={'Todos os materiais','Criação'},koKR={'전체 재료','제작'},zhCN={'全部材料','制作'},zhTW={'全部材料','製作'}}
boardTabs.enGB=boardTabs.enUS; boardTabs.esMX=boardTabs.esES
for locale,values in pairs(boardTabs) do F.Locales[locale].QB_MATERIALS=values[1]; F.Locales[locale].QB_CRAFTS=values[2] end
local appearance={
enUS={'Appearance','Modern','Classic','Commands'},ruRU={'Стиль интерфейса','Современный','Классический','Команды'},
deDE={'Darstellung','Modern','Klassisch','Befehle'},frFR={'Apparence','Moderne','Classique','Commandes'},
esES={'Apariencia','Moderno','Clásico','Comandos'},itIT={'Aspetto','Moderno','Classico','Comandi'},
ptBR={'Aparência','Moderno','Clássico','Comandos'},koKR={'외관','현대적','기본','명령어'},
zhCN={'界面样式','现代','经典','命令'},zhTW={'介面樣式','現代','經典','指令'}}
appearance.enGB=appearance.enUS; appearance.esMX=appearance.esES
for locale,values in pairs(appearance) do
for i,key in ipairs({'SETTING_STYLE','STYLE_MODERN','STYLE_CLASSIC','COMMANDS_BUTTON'}) do F.Locales[locale][key]=values[i] end
end
local watchLimit={enUS='You can favorite up to 5 market items.',ruRU='Можно добавить не более 5 вещей рынка в избранное.',
deDE='Bis zu 5 Marktgegenstände können favorisiert werden.',frFR='Vous pouvez ajouter jusqu’à 5 objets du marché aux favoris.',
esES='Puedes marcar hasta 5 objetos del mercado como favoritos.',itIT='Puoi aggiungere fino a 5 oggetti del mercato ai preferiti.',
ptBR='Você pode favoritar até 5 itens do mercado.',koKR='시장 관심 품목은 최대 5개까지 등록할 수 있습니다.',
zhCN='最多可收藏5种市场物品。',zhTW='最多可收藏5種市場物品。'}
watchLimit.enGB=watchLimit.enUS; watchLimit.esMX=watchLimit.esES
for locale,value in pairs(watchLimit) do F.Locales[locale].MARKET_FAVORITE_LIMIT=value end
local diagnostics={
enUS={'network diagnostics','protected-action logging'},ruRU={'диагностика сети','журнал заблокированных действий'},
deDE={'Netzwerkdiagnose','Protokoll geschützter Aktionen'},frFR={'diagnostic réseau','journal des actions protégées'},
esES={'diagnóstico de red','registro de acciones protegidas'},itIT={'diagnostica di rete','registro delle azioni protette'},
ptBR={'diagnóstico da rede','registro de ações protegidas'},koKR={'네트워크 진단','보호된 동작 기록'},
zhCN={'网络诊断','受保护操作日志'},zhTW={'網路診斷','受保護操作記錄'}}
diagnostics.enGB=diagnostics.enUS; diagnostics.esMX=diagnostics.esES
local updated={}
for locale,values in pairs(diagnostics) do
local dict=F.Locales[locale]
if not updated[dict] then
dict.HELP=dict.HELP..'\nhelp / commands — '..dict.COMMANDS_BUTTON..'\ntrack — '..dict.TRACK_TITLE..
'\nnetstatus — '..values[1]..'\ntaint status|on|off — '..values[2]
updated[dict]=true
end
end
local itemTooltips={
enUS={'Loading item information…','Item information is unavailable.'},
ruRU={'Загрузка информации о предмете…','Информация о предмете недоступна.'},
deDE={'Gegenstandsinformationen werden geladen…','Gegenstandsinformationen sind nicht verfügbar.'},
frFR={'Chargement des informations de l’objet…','Informations de l’objet indisponibles.'},
esES={'Cargando información del objeto…','Información del objeto no disponible.'},
itIT={'Caricamento delle informazioni sull’oggetto…','Informazioni sull’oggetto non disponibili.'},
ptBR={'Carregando informações do item…','Informações do item indisponíveis.'},
koKR={'아이템 정보 불러오는 중…','아이템 정보를 사용할 수 없습니다.'},
zhCN={'正在加载物品信息…','物品信息不可用。'},
zhTW={'正在載入物品資訊…','物品資訊無法使用。'}}
itemTooltips.enGB=itemTooltips.enUS; itemTooltips.esMX=itemTooltips.esES
for locale,values in pairs(itemTooltips) do
F.Locales[locale].ITEM_TOOLTIP_LOADING=values[1]; F.Locales[locale].ITEM_TOOLTIP_UNAVAILABLE=values[2]
end
local versionMessages={
enUS={'Previously, %s reported version %s (installed: %s). /fn updates','Version check queued.','Join a guild or group to check participant versions.'},
ruRU={'Ранее %s сообщил версию %s (установлена %s). /fn updates','Проверка версий поставлена в очередь.','Для проверки версий нужна гильдия или группа.'},
deDE={'%s meldete zuvor Version %s (installiert: %s). /fn updates','Versionsprüfung vorgemerkt.','Tritt einer Gilde oder Gruppe bei, um Spielerversionen zu prüfen.'},
frFR={'%s avait signalé la version %s (installée : %s). /fn updates','Vérification des versions en attente.','Rejoignez une guilde ou un groupe pour vérifier les versions.'},
esES={'%s informó antes de la versión %s (instalada: %s). /fn updates','Comprobación de versiones en cola.','Únete a una hermandad o grupo para comprobar versiones.'},
itIT={'%s ha segnalato la versione %s (installata: %s). /fn updates','Verifica versioni in coda.','Unisciti a una gilda o a un gruppo per verificare le versioni.'},
ptBR={'%s informou a versão %s antes (instalada: %s). /fn updates','Verificação de versões na fila.','Entre em uma guilda ou grupo para verificar versões.'},
koKR={'%s님이 이전에 버전 %s을 알렸습니다 (설치됨: %s). /fn updates','버전 확인이 대기 중입니다.','길드 또는 파티에 참여하여 버전을 확인하세요.'},
zhCN={'%s曾报告版本%s(已安装%s)。/fn updates','版本检查已排队。','加入公会或队伍以检查玩家版本。'},
zhTW={'%s曾回報版本%s(已安裝%s)。/fn updates','版本檢查已排隊。','加入公會或隊伍以檢查玩家版本。'}}
versionMessages.enGB=versionMessages.enUS; versionMessages.esMX=versionMessages.esES
for locale,values in pairs(versionMessages) do
for i,key in ipairs({'UPDATE_PEER_CACHED','UPDATE_VERSION_QUEUED','UPDATE_VERSION_NO_CHANNEL'}) do F.Locales[locale][key]=values[i] end
end
local recipeChatLinks={
enUS={RECIPE_CHAT_LINK="Link recipe in chat",RECIPE_CHAT_LINK_HELP="Insert the recipe link into chat. Press Enter to send.",RECIPE_CHAT_LINK_UNAVAILABLE="The recipe link is unavailable. Try again shortly."},
ruRU={RECIPE_CHAT_LINK="Ссылка на рецепт в чат",RECIPE_CHAT_LINK_HELP="Вставить ссылку на рецепт в чат. Для отправки нажмите Enter.",RECIPE_CHAT_LINK_UNAVAILABLE="Ссылка на рецепт пока недоступна. Повторите позже."},
deDE={RECIPE_CHAT_LINK="Rezept im Chat verlinken",RECIPE_CHAT_LINK_HELP="Den Rezeptlink in den Chat einfügen. Zum Senden Eingabe drücken.",RECIPE_CHAT_LINK_UNAVAILABLE="Der Rezeptlink ist noch nicht verfügbar. Versuche es später erneut."},
frFR={RECIPE_CHAT_LINK="Lier la recette dans le chat",RECIPE_CHAT_LINK_HELP="Insérer le lien de la recette dans le chat. Appuyez sur Entrée pour envoyer.",RECIPE_CHAT_LINK_UNAVAILABLE="Le lien de la recette est indisponible. Réessayez plus tard."},
esES={RECIPE_CHAT_LINK="Enlazar receta en el chat",RECIPE_CHAT_LINK_HELP="Insertar el enlace de la receta en el chat. Pulsa Intro para enviarlo.",RECIPE_CHAT_LINK_UNAVAILABLE="El enlace de la receta no está disponible. Inténtalo más tarde."},
esMX={RECIPE_CHAT_LINK="Enlazar receta en el chat",RECIPE_CHAT_LINK_HELP="Insertar el enlace de la receta en el chat. Pulsa Intro para enviarlo.",RECIPE_CHAT_LINK_UNAVAILABLE="El enlace de la receta no está disponible. Inténtalo más tarde."},
itIT={RECIPE_CHAT_LINK="Collega ricetta in chat",RECIPE_CHAT_LINK_HELP="Inserisci il collegamento della ricetta in chat. Premi Invio per inviare.",RECIPE_CHAT_LINK_UNAVAILABLE="Il collegamento della ricetta non è disponibile. Riprova più tardi."},
ptBR={RECIPE_CHAT_LINK="Vincular receita no bate-papo",RECIPE_CHAT_LINK_HELP="Insere o link da receita no bate-papo. Pressione Enter para enviar.",RECIPE_CHAT_LINK_UNAVAILABLE="O link da receita está indisponível. Tente novamente mais tarde."},
koKR={RECIPE_CHAT_LINK="대화창에 제조법 링크",RECIPE_CHAT_LINK_HELP="대화창에 제조법 링크를 넣습니다. Enter 키를 눌러 전송하세요.",RECIPE_CHAT_LINK_UNAVAILABLE="제조법 링크를 사용할 수 없습니다. 잠시 후 다시 시도하세요."},
zhCN={RECIPE_CHAT_LINK="在聊天中链接配方",RECIPE_CHAT_LINK_HELP="将配方链接插入聊天框。按 Enter 发送。",RECIPE_CHAT_LINK_UNAVAILABLE="配方链接暂不可用,请稍后重试。"},
zhTW={RECIPE_CHAT_LINK="在聊天中連結配方",RECIPE_CHAT_LINK_HELP="將配方連結插入聊天框。按 Enter 傳送。",RECIPE_CHAT_LINK_UNAVAILABLE="配方連結暫不可用,請稍後再試。"},
enGB={RECIPE_CHAT_LINK="Link recipe in chat",RECIPE_CHAT_LINK_HELP="Insert the recipe link into chat. Press Enter to send.",RECIPE_CHAT_LINK_UNAVAILABLE="The recipe link is unavailable. Try again shortly."},
}
for locale,values in pairs(recipeChatLinks) do
for key,value in pairs(values) do F.Locales[locale][key]=value end
end