162
153
static void translate_text_init(void)
167
for (i = 0; i < countof(language_table); i++)
169
for (j = 0; j < countof(translate_text_table); j++)
171
if (translate_text_table[j][i]==0)
172
text_table[j][i]=NULL;
175
temp=get_string_by_id(translate_text_table[j][i]);
176
text_table[j][i]=intl_convert_cp(temp, language_cp_table[i]);
158
for (i = 0; i < countof(language_table); i++) {
159
for (j = 0; j < countof(translate_text_table); j++) {
160
if (translate_text_table[j][i] == 0) {
161
text_table[j][i] = NULL;
163
temp = get_string_by_id(translate_text_table[j][i]);
164
text_table[j][i] = intl_convert_cp(temp, language_cp_table[i]);
182
170
char translate_id_error_text[30];
184
172
char *translate_text(int en_resource)
189
if (en_resource == IDCLS_UNUSED)
192
if (en_resource == 0)
194
log_error(LOG_DEFAULT, "TRANSLATE ERROR: ID 0 was requested.");
195
return "ID 0 translate error";
198
/* handle sid cmdline special case translations */
199
if (en_resource == IDCLS_SPECIFY_SIDCART_ENGINE_MODEL ||
200
en_resource == IDCLS_SPECIFY_SID_ENGINE_MODEL ||
201
en_resource == IDCLS_SPECIFY_SIDDTV_ENGINE_MODEL) {
202
return translate_and_build_sid_cmdline_option(en_resource);
205
if (en_resource < 0x10000)
207
retval = intl_translate_text(en_resource);
211
for (i = 0; i < countof(translate_text_table); i++)
213
if (translate_text_table[i][0] == en_resource)
215
if (translate_text_table[i][current_language_index]!=0 &&
216
text_table[i][current_language_index]!=NULL &&
217
strlen(text_table[i][current_language_index])!=0)
218
retval = text_table[i][current_language_index];
220
retval = text_table[i][0];
227
log_error(LOG_DEFAULT, "TRANSLATE ERROR: ID %d was requested, and would be returning NULL.",en_resource);
228
sprintf(translate_id_error_text,"ID %d translate error",en_resource);
229
retval = translate_id_error_text;
177
if (en_resource == IDCLS_UNUSED) {
181
if (en_resource == 0) {
182
log_error(LOG_DEFAULT, "TRANSLATE ERROR: ID 0 was requested.");
183
return "ID 0 translate error";
186
/* handle sid cmdline special case translations */
187
if (en_resource == IDCLS_SPECIFY_SIDCART_ENGINE_MODEL ||
188
en_resource == IDCLS_SPECIFY_SID_ENGINE_MODEL ||
189
en_resource == IDCLS_SPECIFY_SIDDTV_ENGINE_MODEL) {
190
return translate_and_build_sid_cmdline_option(en_resource);
193
if (en_resource < 0x10000) {
194
retval = intl_translate_text(en_resource);
196
for (i = 0; i < countof(translate_text_table); i++) {
197
if (translate_text_table[i][0] == en_resource) {
198
if (translate_text_table[i][current_language_index] != 0 &&
199
text_table[i][current_language_index] != NULL &&
200
strlen(text_table[i][current_language_index]) != 0) {
201
retval = text_table[i][current_language_index];
203
retval = text_table[i][0];
209
if (retval == NULL) {
210
log_error(LOG_DEFAULT, "TRANSLATE ERROR: ID %d was requested, and would be returning NULL.", en_resource);
211
sprintf(translate_id_error_text, "ID %d translate error", en_resource);
212
retval = translate_id_error_text;
235
218
int translate_res(int en_resource)
237
return intl_translate_res(en_resource);
220
return intl_translate_res(en_resource);
240
223
/* --------------------------------------------------------------------- */
270
254
int translate_resources_init(void)
273
translate_text_init();
257
translate_text_init();
275
return resources_register_string(resources_string);
259
return resources_register_string(resources_string);
278
262
void translate_resources_shutdown(void)
282
for (i = 0; i < countof(language_table); i++)
284
for (j = 0; j < countof(translate_text_table); j++)
286
lib_free(text_table[j][i]);
290
lib_free(current_language);
292
/* check if sid_return is already built */
293
if (sid_return != NULL) {
294
lib_free(sid_return);
266
for (i = 0; i < countof(language_table); i++) {
267
for (j = 0; j < countof(translate_text_table); j++) {
268
lib_free(text_table[j][i]);
272
lib_free(current_language);
274
/* check if sid_return is already built */
275
if (sid_return != NULL) {
276
lib_free(sid_return);
298
280
static const cmdline_option_t cmdline_options[] =
313
295
void translate_arch_language_init(void)
317
lang=intl_arch_language_init();
318
set_current_language(lang, "");
299
lang = intl_arch_language_init();
300
set_current_language(lang, "");
322
304
char *translate_text(int en_resource)
324
if (en_resource == IDCLS_UNUSED)
327
if (en_resource == 0)
329
log_error(LOG_DEFAULT, "TRANSLATE ERROR: ID 0 was requested.");
330
return "ID 0 translate error";
333
/* handle sid cmdline special case translations */
334
if (en_resource == IDCLS_SPECIFY_SIDCART_ENGINE_MODEL ||
335
en_resource == IDCLS_SPECIFY_SID_ENGINE_MODEL ||
336
en_resource == IDCLS_SPECIFY_SIDDTV_ENGINE_MODEL) {
337
return translate_and_build_sid_cmdline_option(en_resource);
340
return _(get_string_by_id(en_resource));
306
if (en_resource == IDCLS_UNUSED) {
310
if (en_resource == 0) {
311
log_error(LOG_DEFAULT, "TRANSLATE ERROR: ID 0 was requested.");
312
return "ID 0 translate error";
315
/* handle sid cmdline special case translations */
316
if (en_resource == IDCLS_SPECIFY_SIDCART_ENGINE_MODEL ||
317
en_resource == IDCLS_SPECIFY_SID_ENGINE_MODEL ||
318
en_resource == IDCLS_SPECIFY_SIDDTV_ENGINE_MODEL) {
319
return translate_and_build_sid_cmdline_option(en_resource);
322
return _(get_string_by_id(en_resource));