@jjlmoya/utils-games-development 1.50.0 → 1.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +3 -1
  3. package/src/entries.ts +8 -1
  4. package/src/tests/locale_completeness.test.ts +2 -2
  5. package/src/tests/tool_validation.test.ts +2 -2
  6. package/src/tool/audioLoopPointFinder/audio-loop-point-finder.css +322 -0
  7. package/src/tool/audioLoopPointFinder/audio-player.ts +84 -0
  8. package/src/tool/audioLoopPointFinder/bibliography.astro +6 -0
  9. package/src/tool/audioLoopPointFinder/bibliography.ts +16 -0
  10. package/src/tool/audioLoopPointFinder/client.ts +262 -0
  11. package/src/tool/audioLoopPointFinder/component.astro +147 -0
  12. package/src/tool/audioLoopPointFinder/dom-utils.ts +55 -0
  13. package/src/tool/audioLoopPointFinder/entry.ts +27 -0
  14. package/src/tool/audioLoopPointFinder/i18n/de.ts +211 -0
  15. package/src/tool/audioLoopPointFinder/i18n/en.ts +211 -0
  16. package/src/tool/audioLoopPointFinder/i18n/es.ts +211 -0
  17. package/src/tool/audioLoopPointFinder/i18n/fr.ts +211 -0
  18. package/src/tool/audioLoopPointFinder/i18n/id.ts +211 -0
  19. package/src/tool/audioLoopPointFinder/i18n/it.ts +211 -0
  20. package/src/tool/audioLoopPointFinder/i18n/ja.ts +211 -0
  21. package/src/tool/audioLoopPointFinder/i18n/ko.ts +211 -0
  22. package/src/tool/audioLoopPointFinder/i18n/nl.ts +211 -0
  23. package/src/tool/audioLoopPointFinder/i18n/pl.ts +211 -0
  24. package/src/tool/audioLoopPointFinder/i18n/pt.ts +211 -0
  25. package/src/tool/audioLoopPointFinder/i18n/ru.ts +211 -0
  26. package/src/tool/audioLoopPointFinder/i18n/sv.ts +211 -0
  27. package/src/tool/audioLoopPointFinder/i18n/tr.ts +211 -0
  28. package/src/tool/audioLoopPointFinder/i18n/zh.ts +211 -0
  29. package/src/tool/audioLoopPointFinder/index.ts +11 -0
  30. package/src/tool/audioLoopPointFinder/logic.test.ts +72 -0
  31. package/src/tool/audioLoopPointFinder/logic.ts +214 -0
  32. package/src/tool/audioLoopPointFinder/metadata-parser.ts +94 -0
  33. package/src/tool/audioLoopPointFinder/seo.astro +15 -0
  34. package/src/tool/audioLoopPointFinder/ui.ts +42 -0
  35. package/src/tool/audioLoopPointFinder/waveform-renderer.ts +53 -0
  36. package/src/tool/saveFileEditor/bibliography.astro +6 -0
  37. package/src/tool/saveFileEditor/bibliography.ts +12 -0
  38. package/src/tool/saveFileEditor/component.astro +351 -0
  39. package/src/tool/saveFileEditor/entry.ts +28 -0
  40. package/src/tool/saveFileEditor/game-save-file-editor.css +250 -0
  41. package/src/tool/saveFileEditor/i18n/de.ts +182 -0
  42. package/src/tool/saveFileEditor/i18n/en.ts +182 -0
  43. package/src/tool/saveFileEditor/i18n/es.ts +182 -0
  44. package/src/tool/saveFileEditor/i18n/fr.ts +182 -0
  45. package/src/tool/saveFileEditor/i18n/id.ts +182 -0
  46. package/src/tool/saveFileEditor/i18n/it.ts +182 -0
  47. package/src/tool/saveFileEditor/i18n/ja.ts +182 -0
  48. package/src/tool/saveFileEditor/i18n/ko.ts +182 -0
  49. package/src/tool/saveFileEditor/i18n/nl.ts +182 -0
  50. package/src/tool/saveFileEditor/i18n/pl.ts +182 -0
  51. package/src/tool/saveFileEditor/i18n/pt.ts +182 -0
  52. package/src/tool/saveFileEditor/i18n/ru.ts +182 -0
  53. package/src/tool/saveFileEditor/i18n/sv.ts +182 -0
  54. package/src/tool/saveFileEditor/i18n/tr.ts +182 -0
  55. package/src/tool/saveFileEditor/i18n/zh.ts +182 -0
  56. package/src/tool/saveFileEditor/index.ts +11 -0
  57. package/src/tool/saveFileEditor/logic.test.ts +69 -0
  58. package/src/tool/saveFileEditor/logic.ts +139 -0
  59. package/src/tool/saveFileEditor/seo.astro +15 -0
  60. package/src/tool/saveFileEditor/ui.ts +24 -0
  61. package/src/tools.ts +5 -0
@@ -0,0 +1,211 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import type { AudioLoopPointFinderUI } from '../ui';
3
+ import { bibliographyEntries } from '../bibliography';
4
+
5
+ export const content: ToolLocaleContent<AudioLoopPointFinderUI> = {
6
+ slug: 'wyszukiwarka-punktow-petli-audio-gier',
7
+ title: 'Wyszukiwarka Punktów Pętli Audio i Injektor Metadanych',
8
+ description: 'Zlokalizuj dokładne punkty pętli audio, dopasuj do przejść przez zero i eksportuj pliki WAV z metadanymi LOOPSTART i LOOPEND dla silników gier.',
9
+ ui: {
10
+ title: 'Wyszukiwarka Punktów Pętli Audio dla Gier',
11
+ subtitle: 'Interaktywny analizator kształtu fali, detektor przejścia przez zero i edytor metadanych WAV',
12
+ dropzoneTitle: 'Przeciągnij plik audio tutaj lub kliknij, aby przeglądać',
13
+ dropzoneSubtitle: 'Obsługuje ścieżki audio WAV, OGG, MP3 i FLAC',
14
+ dropzoneButton: 'Wybierz Plik Audio',
15
+ audioInfoTitle: 'Właściwości Ścieżki Audio',
16
+ durationLabel: 'Czas Trwania',
17
+ sampleRateLabel: 'Częstotliwość Probkowania',
18
+ channelsLabel: 'Kanały Audio',
19
+ totalSamplesLabel: 'Całkowita Liczba Próbek',
20
+ loopControlsTitle: 'Konfiguracja Regionu Pętli',
21
+ loopStartLabel: 'Znacznik Początku Pętli',
22
+ loopEndLabel: 'Znacznik Końca Pętli',
23
+ loopDurationLabel: 'Czas Trwania Pętli',
24
+ zeroCrossingLabel: 'Dopasowanie Przejścia przez Zero',
25
+ snapZeroCrossingButton: 'Dopasuj do Najbliższego Przejścia przez Zero',
26
+ playLoopButton: 'Odsłuchaj Pętlę Bez Szwów',
27
+ pauseLoopButton: 'Wstrzymaj Odtwarzanie',
28
+ stopLoopButton: 'Zatrzymaj Odtwarzanie',
29
+ exportWavButton: 'Eksportuj WAV z Metadanymi',
30
+ sampleUnitLabel: 'Próbki',
31
+ secondUnitLabel: 'Sekundy',
32
+ zoomLabel: 'Powiększenie Fali',
33
+ zoomInButton: 'Powiększ',
34
+ zoomOutButton: 'Pomniejsz',
35
+ resetZoomButton: 'Resetuj Widok',
36
+ noFileSelected: 'Nie załadowano jeszcze pliku audio',
37
+ invalidAudioFile: 'Nie udało się zdekodować pliku audio',
38
+ presetsTitle: 'Szybkie Ustawienia',
39
+ presetFullTrack: 'Pętla Całego Utworu',
40
+ presetIntroCut: 'Pomiń 10% Intro',
41
+ presetMiddleLoop: 'Środkowa Sekcja 50%',
42
+ statusLooping: 'Odtwarzanie w Pętli Aktywne',
43
+ statusPaused: 'Odtwarzanie Wstrzymane',
44
+ statusReady: 'Audio Załadowane i Gotowe',
45
+ statusLoaded: 'Pomyślnie załadowano ścieżkę audio',
46
+ statusDecodeError: 'Błąd podczas dekodowania pliku audio',
47
+ statusSnapped: 'Znaczniki dopasowane do punktów przejścia przez zero',
48
+ statusStopped: 'Zatrzymano odtwarzanie',
49
+ statusExported: 'Wyeksportowano plik WAV z wbudowanymi tagami pętli',
50
+ },
51
+ seo: [
52
+ {
53
+ type: 'title',
54
+ level: 2,
55
+ text: 'Płynne Zapętlanie Audio w Grach i Wyrównanie Próbek',
56
+ },
57
+ {
58
+ type: 'paragraph',
59
+ html: 'Uzyskanie ciągłego odtwarzania muzyki w tle w grach wideo wymaga dokładnego wyrównania próbek na granicach pętli. Nowoczesne silniki gier, takie jak Unity, Godot, Unreal Engine, FMOD i Wwise, wykorzystują wbudowane metadane LOOPSTART i LOOPEND.',
60
+ },
61
+ {
62
+ type: 'stats',
63
+ columns: 4,
64
+ items: [
65
+ { label: 'Precyzja Probkowania', value: '44.1 kHz / 48 kHz' },
66
+ { label: 'Próg Przejścia przez Zero', value: 'Amplituda 0.00' },
67
+ { label: 'Standard Metadanych', value: 'RIFF smpl i INFO' },
68
+ { label: 'Redukcja Klików', value: '100% Wyrównanie Fazy' },
69
+ ],
70
+ },
71
+ {
72
+ type: 'title',
73
+ level: 2,
74
+ text: 'Strategia Przejścia przez Zero',
75
+ },
76
+ {
77
+ type: 'tip',
78
+ title: 'Eliminacja Trasków i Klików',
79
+ html: 'Zawsze wyrównuj znaczniki początku i końca pętli w dodatnich punktach przejścia przez zero. Zapobiega to gwałtownym skokom amplitudy i trzaskom w głośnikach.',
80
+ },
81
+ {
82
+ type: 'title',
83
+ level: 2,
84
+ text: 'Tabela Porównawcza Kompatybilności',
85
+ },
86
+ {
87
+ type: 'comparative',
88
+ columns: 2,
89
+ items: [
90
+ {
91
+ title: 'Znacznik Bloku RIFF smpl',
92
+ description: 'Standardowe binarne metadane w nagłówku pliku WAV',
93
+ points: [
94
+ 'Natywna obsługa w Godot, FMOD, Wwise i GameMaker',
95
+ 'Zapewnia dokładną precyzję próbek bez przesunięć',
96
+ 'Zapisuje punkty pętli wewnątrz jednego pliku WAV',
97
+ 'Eliminuje trzaski przy wyrównaniu do zera',
98
+ ],
99
+ },
100
+ {
101
+ title: 'Ręczne Dzielenie Audio',
102
+ description: 'Cięcie wstępu i pętli na osobne pliki',
103
+ points: [
104
+ 'Używane przez proste odtwarzacze bez obsługi metadanych',
105
+ 'Narażone na małe przerwy i niedokładności czasowe',
106
+ 'Wymaga zarządzania wieloma plikami w projekcie',
107
+ 'Wysokie ryzyko klików na przejściach',
108
+ ],
109
+ },
110
+ ],
111
+ },
112
+ {
113
+ type: 'title',
114
+ level: 2,
115
+ text: 'Tabela Częstotliwości Probkowania',
116
+ },
117
+ {
118
+ type: 'table',
119
+ headers: ['Częstotliwość Probkowania', 'Próbki na Sekundę', 'Zalecane Zastosowanie', 'Rozdzielczość Czasowa'],
120
+ rows: [
121
+ ['44,100 Hz', '44,100', 'Standardowa Jakość CD w Muzyce do Gier', '0.0226 ms na próbkę'],
122
+ ['48,000 Hz', '48,000', 'Nowoczesne Gry PC i Konsole', '0.0208 ms na próbkę'],
123
+ ['96,000 Hz', '96,000', 'Pliki Audio Master w Wysokiej Rozdzielczości', '0.0104 ms na próbkę'],
124
+ ],
125
+ },
126
+ {
127
+ type: 'title',
128
+ level: 2,
129
+ text: 'Automatyczne Wstrzykiwanie Metadanych w Bajtach',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Podczas eksportowania ścieżek z tego narzędzia nowe struktury metadanych są wstrzykiwane bezpośrednio do nagłówka RIFF pliku WAV.',
134
+ },
135
+ ],
136
+ faqTitle: 'Często Zadawane Pytania',
137
+ faq: [
138
+ {
139
+ question: 'Czym są tagi metadanych LOOPSTART i LOOPEND?',
140
+ answer: 'LOOPSTART i LOOPEND to pola metadanych mierzone w bezwzględnej liczbie próbek.',
141
+ },
142
+ {
143
+ question: 'Dlaczego w punktach pętli pojawiają się słyszalne kliki?',
144
+ answer: 'Kliki pojawiają się, gdy fala na końcu nie odpowiada amplitudzie ani fazie na początku.',
145
+ },
146
+ {
147
+ question: 'Czy mój oryginalny plik audio jest przesyłany na serwer?',
148
+ answer: 'Nie. Całe przetwarzanie odbywa się lokalnie w pamięci Twojej przeglądarki.',
149
+ },
150
+ ],
151
+ howTo: [
152
+ {
153
+ name: 'Załaduj Ścieżkę Audio',
154
+ text: 'Przeciągnij plik muzyczny lub wybierz plik WAV, OGG, MP3 lub FLAC.',
155
+ },
156
+ {
157
+ name: 'Ustaw Znaczniki Pętli',
158
+ text: 'Dostosuj początek i koniec pętli za pomocą wykresu fali.',
159
+ },
160
+ {
161
+ name: 'Dopasuj do Przejścia przez Zero',
162
+ text: 'Kliknij przycisk dopasowania do przejścia przez zero.',
163
+ },
164
+ {
165
+ name: 'Odsłuchaj i Eksportuj',
166
+ text: 'Posłuchaj płynnej pętli i wyeksportuj plik WAV z metadanymi.',
167
+ },
168
+ ],
169
+ schemas: [
170
+ {
171
+ '@context': 'https://schema.org',
172
+ '@type': 'SoftwareApplication',
173
+ name: 'Wyszukiwarka Punktów Pętli Audio dla Gier',
174
+ applicationCategory: 'MultimediaApplication',
175
+ operatingSystem: 'Any',
176
+ offers: {
177
+ '@type': 'Offer',
178
+ price: '0',
179
+ priceCurrency: 'PLN',
180
+ },
181
+ },
182
+ {
183
+ '@context': 'https://schema.org',
184
+ '@type': 'FAQPage',
185
+ mainEntity: [
186
+ {
187
+ '@type': 'Question',
188
+ name: 'Czym są tagi metadanych LOOPSTART i LOOPEND?',
189
+ acceptedAnswer: {
190
+ '@type': 'Answer',
191
+ text: 'LOOPSTART i LOOPEND to pola metadanych mierzone w liczbie próbek.',
192
+ },
193
+ },
194
+ ],
195
+ },
196
+ {
197
+ '@context': 'https://schema.org',
198
+ '@type': 'HowTo',
199
+ name: 'Jak znaleźć i wstrzyknąć punkty pętli audio',
200
+ step: [
201
+ {
202
+ '@type': 'HowToStep',
203
+ name: 'Załaduj Ścieżkę Audio',
204
+ text: 'Przeciągnij plik muzyczny lub wybierz plik audio.',
205
+ },
206
+ ],
207
+ },
208
+ ],
209
+ bibliographyTitle: 'Referencje i Dalsza Lektura',
210
+ bibliography: bibliographyEntries,
211
+ };
@@ -0,0 +1,211 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import type { AudioLoopPointFinderUI } from '../ui';
3
+ import { bibliographyEntries } from '../bibliography';
4
+
5
+ export const content: ToolLocaleContent<AudioLoopPointFinderUI> = {
6
+ slug: 'localizador-ponto-loop-audio-jogos',
7
+ title: 'Localizador de Ponto de Loop de Áudio e Injetor de Metadados',
8
+ description: 'Localize pontos exatos de loop de áudio, ajuste aos cruzamentos por zero para eliminar cliques e exporte arquivos WAV com metadados LOOPSTART e LOOPEND.',
9
+ ui: {
10
+ title: 'Localizador de Ponto de Loop de Áudio para Jogos',
11
+ subtitle: 'Analisador interativo de forma de onda, detector de cruzamento por zero e etiquetador de metadados WAV',
12
+ dropzoneTitle: 'Arraste o arquivo de áudio aqui ou clique para buscar',
13
+ dropzoneSubtitle: 'Suporta faixas de áudio WAV, OGG, MP3 e FLAC',
14
+ dropzoneButton: 'Selecionar Arquivo de Áudio',
15
+ audioInfoTitle: 'Propriedades da Faixa de Áudio',
16
+ durationLabel: 'Duração',
17
+ sampleRateLabel: 'Taxa de Amostragem',
18
+ channelsLabel: 'Canais de Áudio',
19
+ totalSamplesLabel: 'Contagem Total de Amostras',
20
+ loopControlsTitle: 'Configuração da Região de Loop',
21
+ loopStartLabel: 'Marcador de Início de Loop',
22
+ loopEndLabel: 'Marcador de Fim de Loop',
23
+ loopDurationLabel: 'Duração do Loop',
24
+ zeroCrossingLabel: 'Ajuste de Cruzamento por Zero',
25
+ snapZeroCrossingButton: 'Ajustar ao Cruzamento por Zero Mais Próximo',
26
+ playLoopButton: 'Previsualizar Loop Perfeito',
27
+ pauseLoopButton: 'Pausar Reprodução',
28
+ stopLoopButton: 'Parar Reprodução',
29
+ exportWavButton: 'Exportar WAV com Metadados',
30
+ sampleUnitLabel: 'Amostras',
31
+ secondUnitLabel: 'Segundos',
32
+ zoomLabel: 'Zoom da Forma de Onda',
33
+ zoomInButton: 'Aproximar',
34
+ zoomOutButton: 'Afasctar',
35
+ resetZoomButton: 'Redefinir Visualização',
36
+ noFileSelected: 'Nenhum arquivo de áudio carregado ainda',
37
+ invalidAudioFile: 'Falha ao decodificar o arquivo de áudio',
38
+ presetsTitle: 'Predefinições Rápidas',
39
+ presetFullTrack: 'Loop da Faixa Completa',
40
+ presetIntroCut: 'Ignorar 10% de Introdução',
41
+ presetMiddleLoop: 'Seção Central 50%',
42
+ statusLooping: 'Reprodução em Loop Ativa',
43
+ statusPaused: 'Reprodução Em Pausa',
44
+ statusReady: 'Áudio Carregado e Pronto',
45
+ statusLoaded: 'Faixa de áudio carregada com sucesso',
46
+ statusDecodeError: 'Erro ao decodificar o arquivo de áudio',
47
+ statusSnapped: 'Marcadores ajustados aos pontos de cruzamento por zero',
48
+ statusStopped: 'Reprodução parada',
49
+ statusExported: 'Arquivo WAV exportado com tags de loop integradas',
50
+ },
51
+ seo: [
52
+ {
53
+ type: 'title',
54
+ level: 2,
55
+ text: 'Loop de Áudio Perfeito e Alinhamento de Amostras em Jogos',
56
+ },
57
+ {
58
+ type: 'paragraph',
59
+ html: 'Obter uma reprodução contínua de música de fundo em videogames requer alinhamento exato de amostras nos limites do loop. Motores modernos como Unity, Godot, Unreal Engine, FMOD e Wwise utilizam metadados integrados como LOOPSTART e LOOPEND.',
60
+ },
61
+ {
62
+ type: 'stats',
63
+ columns: 4,
64
+ items: [
65
+ { label: 'Precisão de Amostragem', value: '44.1 kHz / 48 kHz' },
66
+ { label: 'Limite de Cruzamento por Zero', value: 'Amplitude 0.00' },
67
+ { label: 'Padrão de Metadados', value: 'RIFF smpl e INFO' },
68
+ { label: 'Redução de Cliques', value: '100% Fase Alinhada' },
69
+ ],
70
+ },
71
+ {
72
+ type: 'title',
73
+ level: 2,
74
+ text: 'Estratégia de Cruzamento por Zero',
75
+ },
76
+ {
77
+ type: 'tip',
78
+ title: 'Eliminação de Ruídos de Clique',
79
+ html: 'Sempre alinhe os marcadores de início e fim de loop nos pontos de cruzamento por zero de inclinação positiva. Isso evita deslocamentos bruscos no alto-falante.',
80
+ },
81
+ {
82
+ type: 'title',
83
+ level: 2,
84
+ text: 'Comparativo de Compatibilidade de Metadados',
85
+ },
86
+ {
87
+ type: 'comparative',
88
+ columns: 2,
89
+ items: [
90
+ {
91
+ title: 'Marcador de Bloco RIFF smpl',
92
+ description: 'Metadados binários integrados no cabeçalho WAV',
93
+ points: [
94
+ 'Suportado nativamente por Godot, FMOD, Wwise e GameMaker',
95
+ 'Precisão exata por amostra sem desvio temporal',
96
+ 'Empacota os marcadores dentro do próprio arquivo WAV',
97
+ 'Elimina cliques acústicos com o ajuste por zero',
98
+ ],
99
+ },
100
+ {
101
+ title: 'Corte Manual de Áudio',
102
+ description: 'Divisão de intro e loop em arquivos separados',
103
+ points: [
104
+ 'Utilizado por reprodutores básicos sem leitura de metadados',
105
+ 'Sujeito a pequenas pausas e imprecisões milimétricas',
106
+ 'Requer gerenciar múltiplos arquivos no projeto',
107
+ 'Alto risco de cliques nas transições',
108
+ ],
109
+ },
110
+ ],
111
+ },
112
+ {
113
+ type: 'title',
114
+ level: 2,
115
+ text: 'Tabela de Referência de Taxas de Amostragem',
116
+ },
117
+ {
118
+ type: 'table',
119
+ headers: ['Taxa Estreia', 'Amostras por Segundo', 'Uso Recomendado', 'Resolução Temporal'],
120
+ rows: [
121
+ ['44,100 Hz', '44,100', 'Trilha Sonora Padrão de Jogos em CD', '0.0226 ms por amostra'],
122
+ ['48,000 Hz', '48,000', 'Jogos Modernos de PC e Consoles', '0.0208 ms por amostra'],
123
+ ['96,000 Hz', '96,000', 'Arquivos de Áudio Master em Alta Definição', '0.0104 ms por amostra'],
124
+ ],
125
+ },
126
+ {
127
+ type: 'title',
128
+ level: 2,
129
+ text: 'Injeção Automatizada de Metadados em Bytes',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'Ao exportar faixas de áudio desta ferramenta, novas estruturas de metadatos são injetadas diretamente no cabeçalho RIFF do arquivo WAV.',
134
+ },
135
+ ],
136
+ faqTitle: 'Perguntas Frequentes',
137
+ faq: [
138
+ {
139
+ question: 'O que são as tags de metadados LOOPSTART e LOOPEND?',
140
+ answer: 'LOOPSTART e LOOPEND são campos de metadados medidos em número absoluto de amostras.',
141
+ },
142
+ {
143
+ question: 'Por que ocorrem cliques audíveis nos pontos de loop?',
144
+ answer: 'Cliques ocorrem quando a forma de onda no marcador final não coincide com o nível de amplitude ou fase do início.',
145
+ },
146
+ {
147
+ question: 'Meu arquivo de áudio original é enviado para algum servidor?',
148
+ answer: 'Não. Todo o processamento e decodificação acontecem localmente na memória do seu navegador.',
149
+ },
150
+ ],
151
+ howTo: [
152
+ {
153
+ name: 'Carregar Faixa de Áudio',
154
+ text: 'Arraste e solte sua música ou selecione um arquivo WAV, OGG, MP3 ou FLAC.',
155
+ },
156
+ {
157
+ name: 'Posicionar Marcadores',
158
+ text: 'Ajuste o início e fim do loop através da visualização de forma de onda.',
159
+ },
160
+ {
161
+ name: 'Ajustar aos Cruzamentos por Zero',
162
+ text: 'Clique no botão de ajuste ao cruzamento por zero.',
163
+ },
164
+ {
165
+ name: 'Testar e Exportar',
166
+ text: 'Ouça a reprodução contínua e exporte o arquivo WAV.',
167
+ },
168
+ ],
169
+ schemas: [
170
+ {
171
+ '@context': 'https://schema.org',
172
+ '@type': 'SoftwareApplication',
173
+ name: 'Localizador de Ponto de Loop de Áudio para Jogos',
174
+ applicationCategory: 'MultimediaApplication',
175
+ operatingSystem: 'Any',
176
+ offers: {
177
+ '@type': 'Offer',
178
+ price: '0',
179
+ priceCurrency: 'EUR',
180
+ },
181
+ },
182
+ {
183
+ '@context': 'https://schema.org',
184
+ '@type': 'FAQPage',
185
+ mainEntity: [
186
+ {
187
+ '@type': 'Question',
188
+ name: 'O que são as tags de metadados LOOPSTART e LOOPEND?',
189
+ acceptedAnswer: {
190
+ '@type': 'Answer',
191
+ text: 'LOOPSTART e LOOPEND são campos de metadados medidos em número de amostras.',
192
+ },
193
+ },
194
+ ],
195
+ },
196
+ {
197
+ '@context': 'https://schema.org',
198
+ '@type': 'HowTo',
199
+ name: 'Como encontrar e injetar pontos de loop de áudio',
200
+ step: [
201
+ {
202
+ '@type': 'HowToStep',
203
+ name: 'Carregar Faixa de Áudio',
204
+ text: 'Arraste e solte sua música ou selecione um arquivo de áudio.',
205
+ },
206
+ ],
207
+ },
208
+ ],
209
+ bibliographyTitle: 'Referências e Leitura Adicional',
210
+ bibliography: bibliographyEntries,
211
+ };
@@ -0,0 +1,211 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import type { AudioLoopPointFinderUI } from '../ui';
3
+ import { bibliographyEntries } from '../bibliography';
4
+
5
+ export const content: ToolLocaleContent<AudioLoopPointFinderUI> = {
6
+ slug: 'poisk-tochek-zatretlivaniya-audio-igri',
7
+ title: 'Поиск Точек Зацикливания Аудио и Инжектор Метаданных',
8
+ description: 'Находите точные точки зацикливания аудио, привязывайте к пересечениям нуля и экспортируйте файлы WAV с метаданными LOOPSTART и LOOPEND.',
9
+ ui: {
10
+ title: 'Поиск Точек Зацикливания Аудио для Игр',
11
+ subtitle: 'Интерактивный анализатор формы волны, детектор пересечения нуля и редактор метаданных WAV',
12
+ dropzoneTitle: 'Перетащите аудиофайл сюда или нажмите для выбора',
13
+ dropzoneSubtitle: 'Поддерживает файлы WAV, OGG, MP3 и FLAC',
14
+ dropzoneButton: 'Выбрать Аудиофайл',
15
+ audioInfoTitle: 'Свойства Аудиодорожки',
16
+ durationLabel: 'Длительность',
17
+ sampleRateLabel: 'Частота Дискретизации',
18
+ channelsLabel: 'Аудиоканалы',
19
+ totalSamplesLabel: 'Всего Сэмплов',
20
+ loopControlsTitle: 'Настройка Области Петли',
21
+ loopStartLabel: 'Маркер Начала Петли',
22
+ loopEndLabel: 'Маркер Конца Петли',
23
+ loopDurationLabel: 'Длительность Петли',
24
+ zeroCrossingLabel: 'Привязка к Пересечению Нуля',
25
+ snapZeroCrossingButton: 'Привязать Маркеры к Ближайшему Нулю',
26
+ playLoopButton: 'Предпросмотр Бесшовной Петли',
27
+ pauseLoopButton: 'Пауза',
28
+ stopLoopButton: 'Остановить Воспроизведение',
29
+ exportWavButton: 'Экспортировать WAV с Метаданными',
30
+ sampleUnitLabel: 'Сэмплы',
31
+ secondUnitLabel: 'Секунды',
32
+ zoomLabel: 'Масштаб Волны',
33
+ zoomInButton: 'Увеличить',
34
+ zoomOutButton: 'Уменьшить',
35
+ resetZoomButton: 'Сбросить Вид',
36
+ noFileSelected: 'Аудиофайл еще не загружен',
37
+ invalidAudioFile: 'Не удалось декодировать аудиофайл',
38
+ presetsTitle: 'Быстрые Пресеты',
39
+ presetFullTrack: 'Зациклить Весь Трек',
40
+ presetIntroCut: 'Пропустить 10% Интро',
41
+ presetMiddleLoop: 'Центральные 50%',
42
+ statusLooping: 'Воспроизведение Петли Активно',
43
+ statusPaused: 'Воспроизведение На Паузе',
44
+ statusReady: 'Аудио Загружено и Готово',
45
+ statusLoaded: 'Аудиодорожка успешно загружена',
46
+ statusDecodeError: 'Ошибка при декодировании аудиофайла',
47
+ statusSnapped: 'Маркеры привязаны к точкам пересечения нуля',
48
+ statusStopped: 'Воспроизведение остановлено',
49
+ statusExported: 'Файл WAV экспортирован со встроенными тегами петли',
50
+ },
51
+ seo: [
52
+ {
53
+ type: 'title',
54
+ level: 2,
55
+ text: 'Бесшовное Зацикливание Аудио в Играх и Выравнивание Сэмплов',
56
+ },
57
+ {
58
+ type: 'paragraph',
59
+ html: 'Непрерывное воспроизведение фоновой музыки в видеоиграх требует точного выравнивания сэмплов на границах петли. Современные игровые движки, такие как Unity, Godot, Unreal Engine, FMOD и Wwise, используют встроенные метаданные LOOPSTART и LOOPEND.',
60
+ },
61
+ {
62
+ type: 'stats',
63
+ columns: 4,
64
+ items: [
65
+ { label: 'Точность Дискретизации', value: '44.1 kHz / 48 kHz' },
66
+ { label: 'Порог Пересечения Нуля', value: 'Амплитуда 0.00' },
67
+ { label: 'Стандарт Метаданных', value: 'RIFF smpl и INFO' },
68
+ { label: 'Устранение Щелчков', value: '100% Фаза Совпадает' },
69
+ ],
70
+ },
71
+ {
72
+ type: 'title',
73
+ level: 2,
74
+ text: 'Стратегия Пересечения Нуля',
75
+ },
76
+ {
77
+ type: 'tip',
78
+ title: 'Устранение Щелчков и Помех',
79
+ html: 'Всегда выравнивайте маркеры начала и конца петли в точках положительного пересечения нуля. Это предотвращает резкие скачки амплитуды и щелчки динамиков.',
80
+ },
81
+ {
82
+ type: 'title',
83
+ level: 2,
84
+ text: 'Сравнительная Таблица Совместимости',
85
+ },
86
+ {
87
+ type: 'comparative',
88
+ columns: 2,
89
+ items: [
90
+ {
91
+ title: 'Маркер Блока RIFF smpl',
92
+ description: 'Стандартные бинарные метаданные в заголовке WAV',
93
+ points: [
94
+ 'Нативная поддержка в Godot, FMOD, Wwise и GameMaker',
95
+ 'Точность до отдельного сэмпла без временного дрейфа',
96
+ 'Сохраняет метки петли внутри самого WAV файла',
97
+ 'Устраняет акустические щелчки при привязке к нулю',
98
+ ],
99
+ },
100
+ {
101
+ title: 'Ручное Разделение Аудио',
102
+ description: 'Нарезка интро и петли на отдельные файлы',
103
+ points: [
104
+ 'Используется в простых плеерах без чтения метаданных',
105
+ 'Подвержено неточностям и паузам в миллисекундах',
106
+ 'Требует управления несколькими файлами в проекте',
107
+ 'Высокий риск щелчков на переходах',
108
+ ],
109
+ },
110
+ ],
111
+ },
112
+ {
113
+ type: 'title',
114
+ level: 2,
115
+ text: 'Таблица Частот Дискретизации',
116
+ },
117
+ {
118
+ type: 'table',
119
+ headers: ['Частота Дискретизации', 'Сэмплов в Секунду', 'Рекомендуемое Применение', 'Временное Разрешение'],
120
+ rows: [
121
+ ['44,100 Hz', '44,100', 'Стандартное CD Качество Музыки', '0.0226 мс на сэмпл'],
122
+ ['48,000 Hz', '48,000', 'Современные Игры для ПК и Консолей', '0.0208 мс на сэмпл'],
123
+ ['96,000 Hz', '96,000', 'Мастер Аудио Высокой Четкости', '0.0104 мс на сэмпл'],
124
+ ],
125
+ },
126
+ {
127
+ type: 'title',
128
+ level: 2,
129
+ text: 'Автоматическая Инжекция Метаданных',
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'При экспорте аудиодорожек из этой утилиты новые структуры метаданных внедряются непосредственно в заголовок RIFF выходного файла WAV.',
134
+ },
135
+ ],
136
+ faqTitle: 'Часто Задаваемые Вопросы',
137
+ faq: [
138
+ {
139
+ question: 'Что такое теги метаданных LOOPSTART и LOOPEND?',
140
+ answer: 'LOOPSTART и LOOPEND: это поля метаданных, измеряемые в абсолютном количестве сэмплов.',
141
+ },
142
+ {
143
+ question: 'Почему возникают щелчки в точках зацикливания?',
144
+ answer: 'Щелчки возникают, когда форма волны в конце не совпадает по амплитуде или фазе с началом.',
145
+ },
146
+ {
147
+ question: 'Загружается ли мой оригинальный аудиофайл на сервер?',
148
+ answer: 'Нет. Вся обработка происходит локально в памяти вашего браузера.',
149
+ },
150
+ ],
151
+ howTo: [
152
+ {
153
+ name: 'Загрузить Аудиодорожку',
154
+ text: 'Перетащите музыкальный файл или выберите файл WAV, OGG, MP3 или FLAC.',
155
+ },
156
+ {
157
+ name: 'Установить Маркеры',
158
+ text: 'Настройте начало и конец петли на форме волны.',
159
+ },
160
+ {
161
+ name: 'Привязать к Нулю',
162
+ text: 'Нажмите кнопку привязки к точке пересечения нуля.',
163
+ },
164
+ {
165
+ name: 'Проверить и Экспортировать',
166
+ text: 'Прослушайте бесшовную петлю и экспортируйте файл WAV с метаданными.',
167
+ },
168
+ ],
169
+ schemas: [
170
+ {
171
+ '@context': 'https://schema.org',
172
+ '@type': 'SoftwareApplication',
173
+ name: 'Поиск Точек Зацикливания Аудио для Игр',
174
+ applicationCategory: 'MultimediaApplication',
175
+ operatingSystem: 'Any',
176
+ offers: {
177
+ '@type': 'Offer',
178
+ price: '0',
179
+ priceCurrency: 'RUB',
180
+ },
181
+ },
182
+ {
183
+ '@context': 'https://schema.org',
184
+ '@type': 'FAQPage',
185
+ mainEntity: [
186
+ {
187
+ '@type': 'Question',
188
+ name: 'Что такое теги метаданных LOOPSTART и LOOPEND?',
189
+ acceptedAnswer: {
190
+ '@type': 'Answer',
191
+ text: 'LOOPSTART и LOOPEND: это поля метаданных, измеряемые в количестве сэмплов.',
192
+ },
193
+ },
194
+ ],
195
+ },
196
+ {
197
+ '@context': 'https://schema.org',
198
+ '@type': 'HowTo',
199
+ name: 'Как найти и внедрить точки зацикливания аудио',
200
+ step: [
201
+ {
202
+ '@type': 'HowToStep',
203
+ name: 'Загрузить Аудиодорожку',
204
+ text: 'Перетащите музыкальный файл или выберите аудиофайл.',
205
+ },
206
+ ],
207
+ },
208
+ ],
209
+ bibliographyTitle: 'Ссылки и Литература',
210
+ bibliography: bibliographyEntries,
211
+ };