forked from libretro/RetroArch
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmsg_hash_pt_pt.c
950 lines (937 loc) · 37.3 KB
/
msg_hash_pt_pt.c
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
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
/* RetroArch - A frontend for libretro.
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
* ation, either version 3 of the License, or (at your option) any later version.
*
* RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with RetroArch.
* If not, see <http://www.gnu.org/licenses/>.
*/
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <compat/strl.h>
#include <string/stdstring.h>
#include "../msg_hash.h"
#include "../../configuration.h"
#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
#if (_MSC_VER >= 1700)
/* https://support.microsoft.com/en-us/kb/980263 */
#pragma execution_character_set("utf-8")
#endif
#pragma warning(disable:4566)
#endif
int msg_hash_get_help_pt_pt_enum(enum msg_hash_enums msg, char *s, size_t len)
{
settings_t *settings = config_get_ptr();
switch (msg)
{
case MENU_ENUM_LABEL_CORE_LIST:
snprintf(s, len,
"Carregar Core. \n"
" \n"
"Busca uma implementação de um core \n"
"libretro. Onde a busca inicia depende \n"
"do caminho do seu Diretório de Cores. \n"
"Se não definido, começará no raiz. \n"
" \n"
"Se o Diretório de Cores estiver definido, \n"
"o menu o usará como pasta inicial. Se for um \n"
"caminho completo, ele começará na pasta onde \n"
"o arquivo estiver.");
break;
case MENU_ENUM_LABEL_INPUT_DRIVER:
{
const char *lbl = settings ? settings->arrays.input_driver : NULL;
if (string_is_equal(lbl, msg_hash_to_str(MENU_ENUM_LABEL_INPUT_DRIVER_UDEV)))
snprintf(s, len,
"Driver de entrada udev. \n"
" \n"
"Esse driver funciona sem o X. \n"
" \n"
"Ele usa a recente API de joypads \n"
"evdev para suporte a joystick. \n"
"Suporta Hot-Swap e force feedback \n"
"(se suportado pelo dispositivo). \n"
" \n"
"O driver lê os eventos evdev para suporte a \n"
"teclado. Suporta também callback de teclado, \n"
"mouses e touchpads. \n"
" \n"
"Em geral, na maioria das distribuições, os nós \n"
"/dev/input são root-only (modo 600). Mas você pode \n"
"definir uma regra udev para dar acesso a non-roots."
);
else if (string_is_equal(lbl, msg_hash_to_str(MENU_ENUM_LABEL_INPUT_DRIVER_LINUXRAW)))
snprintf(s, len,
"Driver de Entrada linuxraw. \n"
" \n"
"Esse driver requer um TTY ativo. Eventos de \n"
"teclado são lidos diretamente do TTY, tornando-o \n"
"simples, mas não tão flexível quanto o udev. \n" "Mouses, etc, não são suportados. \n"
" \n"
"Esse driver usa a antiga API de joysticks \n"
"(/dev/input/js*).");
else
snprintf(s, len,
"Driver de Entrada.\n"
" \n"
"Dependendo do driver de vídeo, pode ser necessário \n"
"forçar um driver de entrada diferente.");
}
break;
case MENU_ENUM_LABEL_LOAD_CONTENT_HISTORY:
snprintf(s, len,
"Carregando conteúdo do histórico. \n"
" \n"
"Ao carregar conteúdos, suas combinações com \n"
"cores são salvas no histórico. \n"
" \n"
"O histórico é salvo em um arquivo no mesmo \n"
"diretório do arquivo de configuração. Se nenhuma \n"
"configuração tiver sido carregada, o histórico \n"
"não será salvo ou carregado e não vai existir no \n"
"menu principal."
);
break;
case MENU_ENUM_LABEL_VIDEO_DRIVER:
{
const char *video_driver = settings->arrays.video_driver;
snprintf(s, len,
"Driver de Vídeo em uso.");
if (string_is_equal(video_driver, "gl"))
{
snprintf(s, len,
"Driver de Vídeo OpenGL. \n"
" \n"
"Esse driver permite o uso de cores libretro GL \n"
"em adição às implementações de cores de \n"
"renderização por software.\n"
" \n"
"O desempenho das implementações dos cores de\n"
"renderização por software e libretro GL \n"
"depende do driver GL instalado em sua \n"
"placa de vídeo.");
}
else if (string_is_equal(video_driver, "sdl2"))
{
snprintf(s, len,
"Driver de Vídeo SDL 2.\n"
" \n"
"Esse é um driver de vídeo SDL 2 de \n"
"renderização por software.\n"
" \n"
"O desempenho das implementações dos cores de \n"
"renderização por software depende da \n"
"implementação SDL de sua plataforma.");
}
else if (string_is_equal(video_driver, "sdl1"))
{
snprintf(s, len,
"Driver de Vídeo SDL.\n"
" \n"
"Esse é um driver de vídeo SDL 1.2 de \n"
"renderização por software.\n"
" \n"
"O desemprenho é considerado subótimo. \n"
"Considere seu uso apenas em último caso.");
}
else if (string_is_equal(video_driver, "d3d"))
{
snprintf(s, len,
"Driver de Vídeo Direct3D. \n"
" \n"
"O desempenho das implementações dos cores de\n"
"renderização por software depende do driver \n"
"D3D instalado em sua placa de vídeo.");
}
else if (string_is_equal(video_driver, "exynos"))
{
snprintf(s, len,
"Driver de Vídeo Exynos-G2D. \n"
" \n"
"Esse é um driver de vídeo Exynos de baixo nível. \n"
"Usa o bloco G2D do SoC Samsung Exynos \n"
"para operações de blit. \n"
" \n"
"O desempenho para cores de renderização por \n"
"software deve ser ótimo.");
}
else if (string_is_equal(video_driver, "sunxi"))
{
snprintf(s, len,
"Driver de Vídeo Sunxi-G2D. \n"
" \n"
"Esse é um driver de vídeo Sunxi de baixo nível. \n"
"Usa o bloco G2D dos SoCs Allwinner.");
}
}
break;
case MENU_ENUM_LABEL_AUDIO_DSP_PLUGIN:
snprintf(s, len,
"Plugin de DSP de Áudio.\n"
"Processa áudio antes de ser enviado ao \n"
"driver."
);
break;
case MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER:
{
const char *lbl = settings ? settings->arrays.audio_resampler : NULL;
if (string_is_equal(lbl, msg_hash_to_str(MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER_SINC)))
strlcpy(s,
"Implementação Windowed SINC.", len);
else if (string_is_equal(lbl, msg_hash_to_str(MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER_CC)))
strlcpy(s,
"Implementação Convoluted Cosine.", len);
}
break;
case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET:
snprintf(s, len,
"Carregar Predefinições de Shader. \n"
" \n"
" Carregar predefinições em "
#ifdef HAVE_CG
"Cg"
#endif
#ifdef HAVE_GLSL
#ifdef HAVE_CG
"/"
#endif
"GLSL"
#endif
#ifdef HAVE_HLSL
#if defined(HAVE_CG) || defined(HAVE_HLSL)
"/"
#endif
"HLSL"
#endif
" diretamente. \n"
"O menu de shaders é atualizado de acordo. \n"
" \n"
"Se o CGP usar métodos de interpolação complexos, \n"
"(fator de escala diferente para X e Y) o fator \n"
"de escala mostrado no menu poderá não ser \n"
"correto."
);
break;
case MENU_ENUM_LABEL_VIDEO_SHADER_SCALE_PASS:
snprintf(s, len,
"Escala para este passo. \n"
" \n"
"O fator de escala se acumula, i.e. 2x \n"
"para o primeiro passo e 2x para o segundo \n"
"vai lhe fornecer uma escala total de 4x. \n"
" \n"
"Se houver um fator de escala no último \n"
"passo, o resultado será esticado na tela \n"
"com o filtro especificado em 'Filtro \n"
"Padrão'. \n"
" \n"
"Se 'Tanto faz' estiver definido, a escala \n"
"de 1x ou o esticamento para tela cheia serão \n"
"usados dependendo se o primeiro foi ou não \n"
"definido no último passo."
);
break;
case MENU_ENUM_LABEL_VIDEO_SHADER_NUM_PASSES:
snprintf(s, len,
"Número de Shaders. \n"
" \n"
"O RetroArch permite que você combine vários \n"
"shaders com número arbitrário de passos, filtros \n"
"de hardware e fatores de escala personalizados. \n"
" \n"
"Essa opção especifica o número de passos a usar. \n"
"Se for definido como 0 e usada a opção Aplicar \n"
"Alterações de Shaders, será usado um shader vazio. \n"
" \n"
"A opção Filtro Padrão irá afetar o filtro \n"
"de esticamento.");
break;
case MENU_ENUM_LABEL_VIDEO_SHADER_PARAMETERS:
snprintf(s, len,
"Parâmetros de Shaders. \n"
" \n"
"Modifica o shader em uso diretamente. Não será \n"
"salvo no arquivo de predefinições CGP/GLSLP.");
break;
case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_PARAMETERS:
snprintf(s, len,
"Parâmetros de Predefinições de Shader. \n"
" \n"
"Modifica as predefinições de shader em uso no menu."
);
break;
case MENU_ENUM_LABEL_VIDEO_SHADER_PASS:
snprintf(s, len,
"Caminho do shader. \n"
" \n"
"Todos os shaders devem ser do mesmo \n"
"tipo (i.e. CG, GLSL ou HLSL). \n"
" \n"
"Defina o Diretório de Shaders para indicar \n"
"onde o buscador começa a procurar pelos \n"
"shaders."
);
break;
case MENU_ENUM_LABEL_CONFIG_SAVE_ON_EXIT:
snprintf(s, len,
"Salva configuração ao sair. Útil para\n"
"o menu, pois as definições podem ser\n"
"modificadas. Sobrescreve a configuração.\n"
" \n"
"#includes e comentários não são \n"
"preservados. \n"
" \n"
"Por design, o arquivo de configuração \n"
"é considerado imutável, pois ele é \n"
"provavelmente mantido pelo usuário, \n"
"e não deve ser sobrescrito sem o \n"
"seu conhecimento."
#if defined(RARCH_CONSOLE) || defined(RARCH_MOBILE)
"\nPorém, isso não funciona assim nos \n"
"consoles, pois abrir o arquivo de \n"
"configuração manualmente não é \n"
"realmente uma opção."
#endif
);
break;
case MENU_ENUM_LABEL_VIDEO_SHADER_FILTER_PASS:
snprintf(s, len,
"Filtro de hardware para este passo. \n"
" \n"
"Se 'Tanto faz' estiver definido, o 'Filtro \n"
"Padrão' será usado."
);
break;
case MENU_ENUM_LABEL_AUTOSAVE_INTERVAL:
snprintf(s, len,
"Salva automaticamente a SRAM \n"
"em intervalos regulares.\n"
" \n"
"Está desativado por padrão. O intervalo é \n"
"medido em segundos. \n"
" \n"
"Um valor de 0 desativa o salvamento \n"
"automático.");
break;
case MENU_ENUM_LABEL_INPUT_BIND_DEVICE_TYPE:
snprintf(s, len,
"Tipo de Dispositivo de Entrada. \n"
" \n"
"Escolhe o dispositivo a usar. Isso é \n"
"relevante para o core libretro."
);
break;
case MENU_ENUM_LABEL_LIBRETRO_LOG_LEVEL:
snprintf(s, len,
"Define o nível de registro para os cores \n"
"(GET_LOG_INTERFACE). \n"
" \n"
" Se o nível de registro de um core \n"
" libretro estiver abaixo de libretro_log, \n"
" esse será ignorado.\n"
" \n"
" Registros DEBUG são sempre ignorados a menos \n"
" que o modo prolixo seja ativado (--verbose).\n"
" \n"
" DEBUG = 0\n"
" INFO = 1\n"
" WARN = 2\n"
" ERROR = 3"
);
break;
case MENU_ENUM_LABEL_STATE_SLOT_INCREASE:
case MENU_ENUM_LABEL_STATE_SLOT_DECREASE:
snprintf(s, len,
"Slot de Savestates.\n"
" \n"
" Com o slot definido em 0, o nome do Savestate \n"
" será *.state (ou o que estiver definido em commandline).\n"
"Se diferente de 0, o nome será (caminho)(d), \n"
"em que (d) é o número do slot.");
break;
case MENU_ENUM_LABEL_SHADER_APPLY_CHANGES:
snprintf(s, len,
"Aplicar Alterações de Shaders. \n"
" \n"
"Após alterar definições de shaders, use-o para \n"
"aplicar as mudanças. \n"
" \n"
"Mudar definições de shaders é uma operação \n"
"computacionalmente cara e deve ser \n"
"realizada explicitamente. \n"
" \n"
"Quando se aplicam shaders, as definições do menu \n"
"de shaders são salvas em um arquivo temporário \n"
"(menu.cgp ou menu.glslp) e carregadas. O arquivo \n"
"persiste ao fechar o RetroArch. Ele é salvo \n"
"no Diretório de Shaders."
);
break;
case MENU_ENUM_LABEL_MENU_TOGGLE:
snprintf(s, len,
"Alterna menu.");
break;
case MENU_ENUM_LABEL_GRAB_MOUSE_TOGGLE:
snprintf(s, len,
"Alterna uso de mouse.\n"
" \n"
"Quando o mouse é usado, RetroArch o esconde e \n"
"mantém o seu ponteiro dentro da janela para \n"
"permitir que a entrada relativa do mouse \n"
"funcione melhor.");
break;
case MENU_ENUM_LABEL_DISK_NEXT:
snprintf(s, len,
"Circula por imagens de discos. Usar \n"
"após ejetar. \n"
" \n"
" Finaliza ao usar ejetar novamente.");
break;
case MENU_ENUM_LABEL_VIDEO_FILTER:
#ifdef HAVE_FILTERS_BUILTIN
snprintf(s, len,
"Filtro de vídeo baseado em CPU.");
#else
snprintf(s, len,
"Filtro de vídeo baseado em CPU.\n"
" \n"
"Caminho para uma biblioteca dinâmica.");
#endif
break;
case MENU_ENUM_LABEL_AUDIO_DEVICE:
snprintf(s, len,
"Sobrepõe-se ao dispositivo de áudio padrão \n"
"que está em uso.\n"
"É dependente do driver. \n"
#ifdef HAVE_ALSA
" \n"
"ALSA precisa de um dispositivo PCM."
#endif
#ifdef HAVE_OSS
" \n"
"OSS precisa de um caminho (ex.: /dev/dsp)."
#endif
#ifdef HAVE_JACK
" \n"
"JACK precisa de portas (ex.: system:playback1\n"
",system:playback_2)."
#endif
#ifdef HAVE_RSOUND
" \n"
"RSound precisa de um endereço IP para \n"
"servidor RSound."
#endif
);
break;
case MENU_ENUM_LABEL_DISK_EJECT_TOGGLE:
snprintf(s, len,
"Alterna ejeção para discos.\n"
" \n"
"Usado para conteúdos multidiscos.");
break;
case MENU_ENUM_LABEL_ENABLE_HOTKEY:
snprintf(s, len,
"Ativar outras hotkeys.\n"
" \n"
" Se esta hotkey é usada por teclado, joybutton \n"
"ou joyaxis, todas as outras hotkeys serão \n"
"desativadas a menos que esta hotkey esteja sendo \n"
"usada ao mesmo tempo. \n"
" \n"
"Isso é útil para implementações RETRO_KEYBOARD que \n"
"consultam uma grande área do teclado, cujo caminho \n"
"deve estar livre das hotkeys.");
break;
case MENU_ENUM_LABEL_REWIND_ENABLE:
snprintf(s, len,
"Ativa retrocesso.\n"
" \n"
"Essa opção causa uma perda de desempenho, \n"
"por isso está desativada por padrão.");
break;
case MENU_ENUM_LABEL_LIBRETRO_DIR_PATH:
snprintf(s, len,
"Diretórios de Cores. \n"
" \n"
"Um diretório onde são buscadas as \n"
"implementações de cores libretro.");
break;
case MENU_ENUM_LABEL_VIDEO_REFRESH_RATE_AUTO:
{
/* Work around C89 limitations */
const char * u =
"Taxa de Atualização Automática.\n"
" \n"
"A taxa de atualização exata de nosso monitor (Hz).\n"
"É usada para calcular a taxa de entrada de áudio \n"
"com a fórmula: \n"
" \n"
"audio_input_rate = game input rate * display \n"
"refresh rate / game refresh rate\n"
" \n";
const char * t =
"Se a implementação não informar valores, \n"
"valores NTSC serão assumidos por questão de \n"
"compatibilidade.\n"
" \n"
"Esse valor deve ficar próximo de 60Hz para \n"
"evitar grandes mudanças de pitch. Se o monitor \n"
"não rodar a 60Hz, ou algo próximo a isso, desative\n"
"o VSync, e deixe-o com valores padrão.";
strlcpy(s, u, len);
strlcat(s, t, len);
}
break;
case MENU_ENUM_LABEL_VIDEO_ROTATION:
snprintf(s, len,
"Força uma certa rotação da tela. \n"
" \n"
"A rotação é adicionada a outras definidas\n"
"por conjuntos de cores (veja Permitir\n"
"Rotação de Vídeo).");
break;
case MENU_ENUM_LABEL_VIDEO_SCALE:
snprintf(s, len,
"Resolução de tela cheia.\n"
" \n"
"Resolução 0 usa a resolução \n"
"do ambiente.\n");
break;
case MENU_ENUM_LABEL_FASTFORWARD_RATIO:
snprintf(s, len,
"Taxa de Avanço Rápido."
" \n"
"A taxa máxima na qual o conteúdo será\n"
"executado ao se usar o Avanço Rápido.\n"
" \n"
" (Ex.: 5.0 para conteúdo 60 fps => 300 fps \n"
"máximo).\n"
" \n"
"RetroArch entra em modo sleep para assegurar \n"
"que a taxa máxima não será excedida.\n"
"Não confie que esse teto tenha exatidão \n"
"perfeita.");
break;
case MENU_ENUM_LABEL_VIDEO_MONITOR_INDEX:
snprintf(s, len,
"Preferência de monitor.\n"
" \n"
"0 (padrão) significa nenhum monitor é \n"
"preferido, 1 e demais (1 é o primeiro \n"
"monitor), sugere ao RetroArch usar esse \n"
"monitor em particular.");
break;
case MENU_ENUM_LABEL_VIDEO_CROP_OVERSCAN:
snprintf(s, len,
"Força o descarte de quadros overscanned. \n"
" \n"
"O comportamento exato dessa opção é \n"
"específico da implementação do core.");
break;
case MENU_ENUM_LABEL_VIDEO_SCALE_INTEGER:
snprintf(s, len,
"Só interpola vídeo em escalas múltiplas \n"
"inteiras da resolução nativa.\n"
" \n"
"O tamanho base depende da geometria e da \n"
"relação de aspecto informadas pelo sistema.\n"
" \n"
"Se Forçar Aspecto não estiver definida, X/Y \n"
"serão escalonados em inteiros independentemente.");
break;
case MENU_ENUM_LABEL_AUDIO_VOLUME:
snprintf(s, len,
"Volume de som, em dB.\n"
" \n"
" 0 dB representa o nível normal do volume. Nenhum ganho será aplicado.\n"
"O ganho pode ser controlado em execução com \n"
"Aumentar volume / Diminuir volume.");
break;
case MENU_ENUM_LABEL_AUDIO_RATE_CONTROL_DELTA:
snprintf(s, len,
"Controlo de taxa de som.\n"
" \n"
"Se o valor 0 estiver definido, o controlo da taxa será desativado.\n"
"Outros valores controlam a variação da taxa \n"
"de som.\n"
" \n"
"Define o intervalo de variação da taxa de entrada, \n"
"em termos de regulação.\n"
" \n"
" A taxa de entrada é definida como: \n"
" taxa entrada * (1.0 +/- (Controlo da taxa de som))");
break;
case MENU_ENUM_LABEL_AUDIO_MAX_TIMING_SKEW:
snprintf(s, len,
"Distorção de som máxima.\n"
" \n"
"Define a máxima variação da taxa de entrada.\n"
"Você pode querer aumentá-la para obter grandes\n"
"variações no compasso, por exemplo, ao executar\n"
"núcleos PAL em ecrãs NTSC, sofrendo uma penalização da tonalidade\n"
"do som.\n"
" \n"
" A taxa de entrada é definida como: \n"
" taxa de entrada * (1.0 +/- (distorção máxima do som))");
break;
case MENU_ENUM_LABEL_OVERLAY_NEXT:
snprintf(s, len,
"Muda para o próximo overlay.\n"
" \n"
"Navegação circular.");
break;
case MENU_ENUM_LABEL_LOG_VERBOSITY:
snprintf(s, len,
"Ativa ou desativa o nível de verbosidade \n"
"do frontend.");
break;
case MENU_ENUM_LABEL_VOLUME_UP:
snprintf(s, len,
"Aumenta o volume de som.");
break;
case MENU_ENUM_LABEL_VOLUME_DOWN:
snprintf(s, len,
"Diminui o volume do som.");
break;
case MENU_ENUM_LABEL_VIDEO_DISABLE_COMPOSITION:
snprintf(s, len,
"Força a desativação de composição.\n"
"Válido apenas para o Windows Vista/7.");
break;
case MENU_ENUM_LABEL_PERFCNT_ENABLE:
snprintf(s, len,
"Ativa ou desativa contadores de desempenho \n"
"do frontend.");
break;
case MENU_ENUM_LABEL_SYSTEM_DIRECTORY:
snprintf(s, len,
"Pasta do sistema. \n"
" \n"
"Define a pasta 'system'.\n"
"Os núcleos poderão consultar esta pasta\n"
"para carregar BIOS, configurações\n"
"específicas de sistema, etc.");
break;
case MENU_ENUM_LABEL_SAVESTATE_AUTO_SAVE:
snprintf(s, len,
"Guardar automaticamente o estado de gravação ao sair \n"
"do RetroArch.\n"
" \n"
"O RetroArch carregará automaticamente qualquer\n"
"estado de gravação com este caminho ao iniciar, \n"
"caso a opção 'Carregar estado de gravação automaticamente' estiver ativa.");
break;
case MENU_ENUM_LABEL_VIDEO_THREADED:
snprintf(s, len,
"Utiliza um controlador de vídeo segmentado.\n"
" \n"
"Utilizando esta opção, poderá melhorar o desempenho, \n"
"com um custo a nível de latência e mais engasgamentos \n"
"de vídeo.");
break;
case MENU_ENUM_LABEL_VIDEO_VSYNC:
snprintf(s, len,
"Sincronia vertical de vídeo.\n");
break;
case MENU_ENUM_LABEL_VIDEO_HARD_SYNC:
snprintf(s, len,
"Tenta sincronizar o processador com a GPU, \n"
"com recurso ao hardware.\n"
" \n"
"Pode reduzir a latência, a troco de uma \n"
"diminuição de desempenho.");
break;
case MENU_ENUM_LABEL_REWIND_GRANULARITY:
snprintf(s, len,
"Granularidade da função de retrocedimento \n"
"do tempo.\n"
"Ao retroceder um número definido de \n"
"fotogramas, você poderá retroceder vários \n"
"fotogramas de cada vez, aumentando assim a velocidade \n"
"do retrocedimento.");
break;
case MENU_ENUM_LABEL_SCREENSHOT:
snprintf(s, len,
"Obtem uma captura de ecrã.");
break;
case MENU_ENUM_LABEL_VIDEO_FRAME_DELAY:
snprintf(s, len,
"Define quantos milissegundos serão utilizados \n"
"para atraso, após a sincronização vertical, \n"
"antes de iniciar o núcleo.\n"
"Pode reduzir a latência a troco de\n"
"um aumento do risco de engasgamento de vídeo.\n"
" \n"
"O valor máximo é 15.");
break;
case MENU_ENUM_LABEL_VIDEO_HARD_SYNC_FRAMES:
snprintf(s, len,
"Define quantos fotogramas o processador pode processar \n"
"à frente da da GPU com a opção 'Sincronismo \n"
"de GPU através de hardware' ativada.\n"
" \n"
"O valor máximo é 3.\n"
" \n"
" 0: Sincroniza com a GPU de imediato.\n"
" 1: Sincroniza com o fotograma anterior.\n"
" 2: Etc ...");
break;
case MENU_ENUM_LABEL_VIDEO_BLACK_FRAME_INSERTION:
snprintf(s, len,
"Introduz um fotograma preto entre fotogramas. \n"
" \n"
"Útil para monitores de 120 Hz que executam \n"
"conteúdo a 60 Hz, eliminando o efeito \n"
"'ghosting'.\n"
" \n"
"A taxa de atualização de vídeo deve ainda \n"
"ser configurada para 60 Hz \n"
"(divida a taxa de atualização por 2).");
break;
case MENU_ENUM_LABEL_RGUI_SHOW_START_SCREEN:
snprintf(s, len,
"Mostra o ecrã inicial no menu.\n"
"Esta definição é desativada automaticamente quando\n"
"vista pela primeira vez.\n"
" \n"
"Esta definição é definida na configuração apenas quando a\n"
"opção 'Guardar configuração ao sair' estiver ativada.\n");
break;
case MENU_ENUM_LABEL_VIDEO_FULLSCREEN:
snprintf(s, len, "Ativa/desativa ecrã completo.");
break;
case MENU_ENUM_LABEL_BLOCK_SRAM_OVERWRITE:
snprintf(s, len,
"Previne a sobrescrição da SRAM durante \n"
"o carregamento de estados de gravação.\n"
" \n"
"Pode originar erros durante a execução de conteúdos.");
break;
case MENU_ENUM_LABEL_PAUSE_NONACTIVE:
snprintf(s, len,
"Colocar em pausa o jogo quando o foco da janela \n"
"for perdido.");
break;
case MENU_ENUM_LABEL_VIDEO_GPU_SCREENSHOT:
snprintf(s, len,
"Captura vídeo renderizado da saída da \n"
"GPU, caso esteja disponível.");
break;
case MENU_ENUM_LABEL_SCREENSHOT_DIRECTORY:
snprintf(s, len,
"Pasta de capturas de ecrã. \n"
" \n"
"Pasta para armazenamento das capturas de ecrã."
);
break;
case MENU_ENUM_LABEL_VIDEO_SWAP_INTERVAL:
snprintf(s, len,
"Intervalo de troca de sincronização vertical.\n"
" \n"
"Utiliza um intervalo de troca personalizado. \n"
"Use-o para reduzir até metade a taxa de \n"
"atualização do ecrã.");
break;
case MENU_ENUM_LABEL_SAVEFILE_DIRECTORY:
snprintf(s, len,
"Pasta de jogos guardados. \n"
" \n"
"Guarda todos os ficheiros de gravação (*.srm) nesta \n"
"pasta, tais como ficheiros relacionados: \n"
".bsv, .rt, .psrm, etc.\n"
" \n"
"Pode perder prevalência em relação a opções explícitas\n"
"passadas como parâmetros na linha de comandos.");
break;
case MENU_ENUM_LABEL_SAVESTATE_DIRECTORY:
snprintf(s, len,
"Pasta de gravação de estados. \n"
" \n"
"Todos os estados de gravação (*.state) serão \n"
"guardados nesta pasta.\n"
" \n"
"Pode deixar de ter prevalência em relação a opções explícitas\n"
"passadas como parâmetros na linha de comandos.");
break;
case MENU_ENUM_LABEL_ASSETS_DIRECTORY:
snprintf(s, len,
"Pasta de recursos (assets). \n"
" \n"
"Esta localização é consultada por omissão \n"
"pela interface do menu para procura de recursos (assets) \n"
"recarregáveis.");
break;
case MENU_ENUM_LABEL_DYNAMIC_WALLPAPERS_DIRECTORY:
snprintf(s, len,
"Pasta de imagens de fundo dinâmicos. \n"
" \n"
" O lugar para armazenar imagens de fundo que \n"
"serão carregadas dinamicamente pelo menu, \n"
"dependendo do contexto.");
break;
case MENU_ENUM_LABEL_SLOWMOTION_RATIO:
snprintf(s, len,
"Rácio da câmera lenta."
" \n"
"Quando ativo, o conteúdo será executado numa velocidade\n"
"reduzida por esse fator.");
break;
case MENU_ENUM_LABEL_INPUT_TURBO_PERIOD:
snprintf(s, len,
"Período de turbo.\n"
" \n"
"Descreve a velocidade com que os botões\n"
"com turbo ativo se alternam entre si."
);
break;
case MENU_ENUM_LABEL_INPUT_AUTODETECT_ENABLE:
snprintf(s, len,
"Ativa auto-detecção de periféricos de entrada.\n"
" \n"
"Os comandos serão configurados, de forma automática, \n"
"através do Plug and Play.");
break;
case MENU_ENUM_LABEL_CAMERA_ALLOW:
snprintf(s, len,
"Autorizar ou desautorizar o acesso da câmera \n"
"pelos núcleos.");
break;
case MENU_ENUM_LABEL_LOCATION_ALLOW:
snprintf(s, len,
"Autorizar ou desautorizar o acesso de \n"
"serviços de localização pelos núcleos.");
break;
case MENU_ENUM_LABEL_TURBO:
snprintf(s, len,
"Ativar turbo.\n"
" \n"
"Se manter o botão turbo pressionado e pressionar outro \n"
"botão, este último entrará no modo \n"
"turbo e o seu estado será modulado com \n"
"um sinal periódico. \n"
" \n"
"A modulação pára quando o próprio botão \n"
"(não o botão de turbo) já no se encontrar pressionado.");
break;
case MENU_ENUM_LABEL_OSK_ENABLE:
snprintf(s, len,
"Ativar/desativar teclado no ecrã.");
break;
case MENU_ENUM_LABEL_AUDIO_MUTE:
snprintf(s, len,
"Silenciar ou remover silêncio do dispositivo.");
break;
case MENU_ENUM_LABEL_REWIND:
snprintf(s, len,
"Mantenha o botão pressionado para\n"
"ativar o retrocedimento do tempo. \n"
"O retrocedimento de tempo deve estar ativo.");
break;
case MENU_ENUM_LABEL_EXIT_EMULATOR:
snprintf(s, len,
"Tecla para encerrar o RetroArch."
#if !defined(RARCH_MOBILE) && !defined(RARCH_CONSOLE)
"\nSe o fechar abruptamente, \n"
"(SIGKILL, etc) sairá sem guardar a RAM, entre outros dados.\n"
"Em sistemas baseados em Unix,\n"
"o SIGINT/SIGTERM permite um\n"
"encerramento seguro."
#endif
);
break;
case MENU_ENUM_LABEL_LOAD_STATE:
snprintf(s, len,
"Carrega o estado de gravação.");
break;
case MENU_ENUM_LABEL_SAVE_STATE:
snprintf(s, len,
"Guarda o estado de gravação.");
break;
case MENU_ENUM_LABEL_CHEAT_INDEX_PLUS:
snprintf(s, len,
"Incrementa o índice de batota.\n");
break;
case MENU_ENUM_LABEL_CHEAT_INDEX_MINUS:
snprintf(s, len,
"Decrementa o índice de batota.\n");
break;
case MENU_ENUM_LABEL_SHADER_PREV:
snprintf(s, len,
"Aplica o shader anterior na pasta.");
break;
case MENU_ENUM_LABEL_SHADER_NEXT:
snprintf(s, len,
"Aplica o próximo shader na pasta.");
break;
case MENU_ENUM_LABEL_RESET:
snprintf(s, len,
"Reinicia o conteúdo.\n");
break;
case MENU_ENUM_LABEL_PAUSE_TOGGLE:
snprintf(s, len,
"Pausa/resume o conteúdo.");
break;
case MENU_ENUM_LABEL_CHEAT_TOGGLE:
snprintf(s, len,
"Alterna entre os índices de batota.\n");
break;
case MENU_ENUM_LABEL_HOLD_FAST_FORWARD:
snprintf(s, len,
"Continue a pressionar para ativar a função de avanço rápido. Se soltar o botão \n"
"irá desativar a função de avanço-rápido.");
break;
case MENU_ENUM_LABEL_SLOWMOTION_HOLD:
snprintf(s, len,
"Continue a pressionar para manter o modo de câmera lenta.");
break;
case MENU_ENUM_LABEL_FRAME_ADVANCE:
snprintf(s, len,
"O fotograma avança enquanto o conteúdo está em pausa.");
break;
case MENU_ENUM_LABEL_BSV_RECORD_TOGGLE:
snprintf(s, len,
"Ativa ou desativa a gravação.");
break;
case MENU_ENUM_LABEL_L_X_PLUS:
case MENU_ENUM_LABEL_L_X_MINUS:
case MENU_ENUM_LABEL_L_Y_PLUS:
case MENU_ENUM_LABEL_L_Y_MINUS:
case MENU_ENUM_LABEL_R_X_PLUS:
case MENU_ENUM_LABEL_R_X_MINUS:
case MENU_ENUM_LABEL_R_Y_PLUS:
case MENU_ENUM_LABEL_R_Y_MINUS:
snprintf(s, len,
"Eixo para o analógico (esquema DualShock).\n"
" \n"
"A associação é feita normalmente, no entanto, se um analógico real \n"
"for associado, pode ser lido como um analógico\n"
"verdadeiro. \n"
" \n"
"O eixo positivo X é para direita. \n"
"O eixo positivo Y é para baixo.");
break;
case MSG_UNKNOWN:
default:
if (s[0] == '\0')
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE), len);
return -1;
}
return 0;
}
const char *msg_hash_to_str_pt_pt(enum msg_hash_enums msg)
{
switch (msg)
{
#include "msg_hash_pt_pt.h"
default:
break;
}
return "null";
}