Jump to content
The Dark Mod Forums

Recommended Posts

Posted

Ignore that post (how do you cancel a post before submission here anyway? Or delete an embedded rich-text block?)

This treatment of map_text will be a problem if it's a paragraph. How about breaking it up into a consecutive pair

map_text_en "Unable to save"

map_text_ru "Не удалось сохранить"

As for language, make it

language "[english]"

with brackets, so I can search for it more precisely. Or do away with it by what I'd really prefer, breaking up all.lang into individual not-so-massive files, e.g. russian.utf8lang.

  • Like 1
Posted

Also, maybe there would need to be a limit on how much text you want to match for map_text? First 128 characters, say?

Posted

In the meantime, I'm working through a partial restructuring of existing all.lang content, to better reflect UI layouts. Got the Settings mostly done.

I wanted to create a reasonable convention to indicated that a particular string, used in multiple places, is only defined once as usual but used in other places. For the latter, I decided that "//&" might serve to indicate: this #str_ is used/referenced here, but defined elsewhere in the [language] block. For instance, the choice for this Setting...

 

// row 7:
	"#str_02933"	"Uncap FPS"
//&	"#str_07217"	"Off;On"
	"#str_menu_uncap_fps_tooltip"	"Sync game modeling to rendering\nRequired for FPS higher than 60"

In a translated block, I expect that reference's content would be left in English, but the translator could update it to the target language if desired. It's still just a comment.

Posted
1 hour ago, Geep said:

How about breaking it up into a consecutive pair

map_text_en "Unable to save"
map_text_ru "Не удалось сохранить"

I think it is bad because reordering commands quite often would change meaning.
It is not even clear how to break lines into such blocks.

But... there is no requirement to put everything into one line.
So in my suggestion you should be able to do for instance:

map_text
  "Unable to save"
  "Не удалось сохранить"

 

Quote

language "[english]"
with brackets, so I can search for it more precisely.

Okay, it makes sense.

Quote

Or do away with it by what I'd really prefer, breaking up all.lang into individual not-so-massive files, e.g. russian.utf8lang.

Would it really be simpler to have every language in its own file?
When we add a string, we rarely add it to all the 17 languages, so it is not very easy to learn about it afterwards. Are you sure putting all languages together for each string wouldn't be easier?

  • Like 1
Posted

The UTF-8 system is mostly working.

I have issues with Hungarian.
It has a legitimate letter ő (C3 B5) mapped to question mark.
And I think the same happens to 
û (C3 BB) and ñ (C3 B1) a lot more (probably from other languages as usual).

These are the warnings, each contains 4 bytes which can't be decoded using provided charmap, usually the first two denote the problematic character:

Spoiler
WARNING:file /strings/all.lang, line 10886: Unexpected UTF-8 characters: 0xC3 0xB5 0x6C 0x20
WARNING:file /strings/all.lang, line 10886: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x72
WARNING:file /strings/all.lang, line 10886: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B 0x6E
WARNING:file /strings/all.lang, line 10887: Unexpected UTF-8 characters: 0xC3 0xB5 0x6E 0x79
WARNING:file /strings/all.lang, line 10908: Unexpected UTF-8 characters: 0xC3 0xBB 0x20 0x6D
WARNING:file /strings/all.lang, line 10909: Unexpected UTF-8 characters: 0xC3 0xBB 0x20 0x6D
WARNING:file /strings/all.lang, line 10910: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B 0x65
WARNING:file /strings/all.lang, line 10910: Unexpected UTF-8 characters: 0xC3 0xBB 0x7A 0x20
WARNING:file /strings/all.lang, line 10910: Unexpected UTF-8 characters: 0xC3 0xB5 0x6C 0xC3
WARNING:file /strings/all.lang, line 10910: Unexpected UTF-8 characters: 0xC3 0xB5 0x64 0x64
WARNING:file /strings/all.lang, line 10910: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B 0x65
WARNING:file /strings/all.lang, line 10912: Unexpected UTF-8 characters: 0xC3 0xBB 0x65 0x6E
WARNING:file /strings/all.lang, line 10913: Unexpected UTF-8 characters: 0xC3 0xBB 0x74 0x2E
WARNING:file /strings/all.lang, line 10914: Unexpected UTF-8 characters: 0xC3 0xBB 0x20 0x73
WARNING:file /strings/all.lang, line 10915: Unexpected UTF-8 characters: 0xC3 0xBB 0x6B 0xC3
WARNING:file /strings/all.lang, line 10915: Unexpected UTF-8 characters: 0xC3 0xB5 0x76 0x65
WARNING:file /strings/all.lang, line 10918: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0xC3
WARNING:file /strings/all.lang, line 10919: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0xC3
WARNING:file /strings/all.lang, line 10920: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0x20
WARNING:file /strings/all.lang, line 10941: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x6A
WARNING:file /strings/all.lang, line 10944: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x61
WARNING:file /strings/all.lang, line 10961: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B
WARNING:file /strings/all.lang, line 10963: Unexpected UTF-8 characters: 0xC3 0xB5 0x6C
WARNING:file /strings/all.lang, line 10971: Unexpected UTF-8 characters: 0xC3 0xB5 0x6D 0x65
WARNING:file /strings/all.lang, line 10972: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x4B
WARNING:file /strings/all.lang, line 10993: Unexpected UTF-8 characters: 0xC3 0xBB 0x76 0x65
WARNING:file /strings/all.lang, line 11000: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x65
WARNING:file /strings/all.lang, line 11002: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0x7A
WARNING:file /strings/all.lang, line 11011: Unexpected UTF-8 characters: 0xC3 0xB5 0x28 0x65
WARNING:file /strings/all.lang, line 11013: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B 0x65
WARNING:file /strings/all.lang, line 11014: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0x69
WARNING:file /strings/all.lang, line 11026: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11029: Unexpected UTF-8 characters: 0xC3 0xBB 0x72 0xC3
WARNING:file /strings/all.lang, line 11045: Unexpected UTF-8 characters: 0xC3 0xB5 0x3A
WARNING:file /strings/all.lang, line 11050: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x3E
WARNING:file /strings/all.lang, line 11051: Unexpected UTF-8 characters: 0xC3 0xB5 0x7A 0xC3
WARNING:file /strings/all.lang, line 11051: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11064: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x45
WARNING:file /strings/all.lang, line 11065: Unexpected UTF-8 characters: 0xC3 0xB5 0x7A 0xC3
WARNING:file /strings/all.lang, line 11065: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x45
WARNING:file /strings/all.lang, line 11066: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x45
WARNING:file /strings/all.lang, line 11067: Unexpected UTF-8 characters: 0xC3 0xB5 0x7A 0xC3
WARNING:file /strings/all.lang, line 11067: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x45
WARNING:file /strings/all.lang, line 11069: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x45
WARNING:file /strings/all.lang, line 11072: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11073: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11079: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x6B
WARNING:file /strings/all.lang, line 11082: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11085: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x48
WARNING:file /strings/all.lang, line 11094: Unexpected UTF-8 characters: 0xC3 0xB5 0x3A 0x20
WARNING:file /strings/all.lang, line 11095: Unexpected UTF-8 characters: 0xC3 0xB5 0x3A 0x20
WARNING:file /strings/all.lang, line 11102: Unexpected UTF-8 characters: 0xC3 0xB5 0x73 0x73
WARNING:file /strings/all.lang, line 11144: Unexpected UTF-8 characters: 0xC3 0xBB 0x20 0x66
WARNING:file /strings/all.lang, line 11144: Unexpected UTF-8 characters: 0xC3 0xBB 0x20 0x74
WARNING:file /strings/all.lang, line 11146: Unexpected UTF-8 characters: 0xC3 0xBB 0x20 0x6E
WARNING:file /strings/all.lang, line 11146: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B 0x2C
WARNING:file /strings/all.lang, line 11148: Unexpected UTF-8 characters: 0xC3 0xB5 0x74 0x20
WARNING:file /strings/all.lang, line 11148: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x67
WARNING:file /strings/all.lang, line 11149: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x68
WARNING:file /strings/all.lang, line 11150: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B 0x2C
WARNING:file /strings/all.lang, line 11150: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x67
WARNING:file /strings/all.lang, line 11151: Unexpected UTF-8 characters: 0xC3 0xB5 0x65 0x6E
WARNING:file /strings/all.lang, line 11151: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B 0x20
WARNING:file /strings/all.lang, line 11152: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B 0x2C
WARNING:file /strings/all.lang, line 11153: Unexpected UTF-8 characters: 0xC3 0xB5 0x2C 0x20
WARNING:file /strings/all.lang, line 11153: Unexpected UTF-8 characters: 0xC3 0xB5 0x65 0x6E
WARNING:file /strings/all.lang, line 11154: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0x7A
WARNING:file /strings/all.lang, line 11154: Unexpected UTF-8 characters: 0xC3 0xB5 0x73 0x65
WARNING:file /strings/all.lang, line 11154: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x65
WARNING:file /strings/all.lang, line 11155: Unexpected UTF-8 characters: 0xC3 0xB5 0x73 0x20
WARNING:file /strings/all.lang, line 11155: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x61
WARNING:file /strings/all.lang, line 11156: Unexpected UTF-8 characters: 0xC3 0xB5 0x6C 0x20
WARNING:file /strings/all.lang, line 11157: Unexpected UTF-8 characters: 0xC3 0xB5 0x73 0x65
WARNING:file /strings/all.lang, line 11157: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x62
WARNING:file /strings/all.lang, line 11158: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B 0x20
WARNING:file /strings/all.lang, line 11158: Unexpected UTF-8 characters: 0xC3 0xB5 0x6C 0x20
WARNING:file /strings/all.lang, line 11158: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x66
WARNING:file /strings/all.lang, line 11159: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x66
WARNING:file /strings/all.lang, line 11159: Unexpected UTF-8 characters: 0xC3 0xB5 0x7A 0x76
WARNING:file /strings/all.lang, line 11159: Unexpected UTF-8 characters: 0xC3 0xB5 0x64 0xC3
WARNING:file /strings/all.lang, line 11160: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x66
WARNING:file /strings/all.lang, line 11161: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x70
WARNING:file /strings/all.lang, line 11161: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B 0x62
WARNING:file /strings/all.lang, line 11161: Unexpected UTF-8 characters: 0xC3 0xB5 0x68 0x6F
WARNING:file /strings/all.lang, line 11200: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11204: Unexpected UTF-8 characters: 0xC3 0xBB 0x20 0x45
WARNING:file /strings/all.lang, line 11208: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x45
WARNING:file /strings/all.lang, line 11233: Unexpected UTF-8 characters: 0xC3 0xB5 0x64 0xC3
WARNING:file /strings/all.lang, line 11235: Unexpected UTF-8 characters: 0xC3 0xBB
WARNING:file /strings/all.lang, line 11236: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11237: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B
WARNING:file /strings/all.lang, line 11244: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11245: Unexpected UTF-8 characters: 0xC3 0xBB
WARNING:file /strings/all.lang, line 11246: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x49
WARNING:file /strings/all.lang, line 11247: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x46
WARNING:file /strings/all.lang, line 11250: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B
WARNING:file /strings/all.lang, line 11255: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0x65
WARNING:file /strings/all.lang, line 11262: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0x65
WARNING:file /strings/all.lang, line 11273: Unexpected UTF-8 characters: 0xC3 0xB5 0x7A 0xC3
WARNING:file /strings/all.lang, line 11273: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x46
WARNING:file /strings/all.lang, line 11274: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x46
WARNING:file /strings/all.lang, line 11278: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11279: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11280: Unexpected UTF-8 characters: 0xC3 0xBB 0x7A 0x20
WARNING:file /strings/all.lang, line 11280: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11281: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11282: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11283: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x6E
WARNING:file /strings/all.lang, line 11283: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11284: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11285: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11296: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11298: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11300: Unexpected UTF-8 characters: 0xC3 0xB5 0x6D 0x65
WARNING:file /strings/all.lang, line 11316: Unexpected UTF-8 characters: 0xC3 0xB1 0x6F 0x6C
WARNING:file /strings/all.lang, line 11318: Unexpected UTF-8 characters: 0xC3 0xAA 0x73
WARNING:file /strings/all.lang, line 11321: Unexpected UTF-8 characters: 0xC2 0xAC 0x65 0x73
WARNING:file /strings/all.lang, line 11326: Unexpected UTF-8 characters: 0xC3 0xA0
WARNING:file /strings/all.lang, line 11337: Unexpected UTF-8 characters: 0xC2 0xAE 0x69 0x6E
WARNING:file /strings/all.lang, line 11348: Unexpected UTF-8 characters: 0xC3 0xB5 0x6C 0x3F
WARNING:file /strings/all.lang, line 11353: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11365: Unexpected UTF-8 characters: 0xC3 0xBB
WARNING:file /strings/all.lang, line 11368: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11375: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B 0x65
WARNING:file /strings/all.lang, line 11386: Unexpected UTF-8 characters: 0xC3 0xB5 0x65 0x6E
WARNING:file /strings/all.lang, line 11405: Unexpected UTF-8 characters: 0xC3 0xBB
WARNING:file /strings/all.lang, line 11525: Unexpected UTF-8 characters: 0xC3 0xB5 0x73 0xC3
WARNING:file /strings/all.lang, line 11527: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11529: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x46
WARNING:file /strings/all.lang, line 11530: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x4C
WARNING:file /strings/all.lang, line 11556: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0x7A
WARNING:file /strings/all.lang, line 11568: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11569: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B 0xC3
WARNING:file /strings/all.lang, line 11569: Unexpected UTF-8 characters: 0xC3 0xB5 0x6C 0x20
WARNING:file /strings/all.lang, line 11570: Unexpected UTF-8 characters: 0xC3 0xB5 0x62 0x62
WARNING:file /strings/all.lang, line 11579: Unexpected UTF-8 characters: 0xC3 0xB5 0x3B 0x46
WARNING:file /strings/all.lang, line 11585: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11586: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11594: Unexpected UTF-8 characters: 0xC3 0xB5 0x2E 0x20
WARNING:file /strings/all.lang, line 11594: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x68
WARNING:file /strings/all.lang, line 11595: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x65
WARNING:file /strings/all.lang, line 11596: Unexpected UTF-8 characters: 0xC3 0xB5 0x2E
WARNING:file /strings/all.lang, line 11598: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0x69
WARNING:file /strings/all.lang, line 11598: Unexpected UTF-8 characters: 0xC3 0xB5 0x70 0x75
WARNING:file /strings/all.lang, line 11618: Unexpected UTF-8 characters: 0xC3 0xBB 0x3B 0x4C
WARNING:file /strings/all.lang, line 11620: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B 0x65
WARNING:file /strings/all.lang, line 11624: Unexpected UTF-8 characters: 0xC3 0xB5 0x3B 0x48
WARNING:file /strings/all.lang, line 11633: Unexpected UTF-8 characters: 0xC3 0xBB 0x7A 0x20
WARNING:file /strings/all.lang, line 11639: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11642: Unexpected UTF-8 characters: 0xC3 0xB5 0x68 0x61
WARNING:file /strings/all.lang, line 11675: Unexpected UTF-8 characters: 0xC3 0xB5 0x70 0x61
WARNING:file /strings/all.lang, line 11689: Unexpected UTF-8 characters: 0xC3 0xB5 0x72
WARNING:file /strings/all.lang, line 11693: Unexpected UTF-8 characters: 0xC3 0xB5 0x72
WARNING:file /strings/all.lang, line 11694: Unexpected UTF-8 characters: 0xC3 0xB5 0x72
WARNING:file /strings/all.lang, line 11702: Unexpected UTF-8 characters: 0xC3 0xB5 0x72
WARNING:file /strings/all.lang, line 11709: Unexpected UTF-8 characters: 0xC3 0x95 0x72 0xC3
WARNING:file /strings/all.lang, line 11726: Unexpected UTF-8 characters: 0xC3 0x95 0x72 0x73
WARNING:file /strings/all.lang, line 11734: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11743: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11744: Unexpected UTF-8 characters: 0xC3 0xB5 0x7A 0xC3
WARNING:file /strings/all.lang, line 11744: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11749: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11750: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0x64
WARNING:file /strings/all.lang, line 11750: Unexpected UTF-8 characters: 0xC3 0xBB 0x76 0x65
WARNING:file /strings/all.lang, line 11752: Unexpected UTF-8 characters: 0xC3 0xBB 0x76 0x65
WARNING:file /strings/all.lang, line 11753: Unexpected UTF-8 characters: 0xC3 0xB5 0x7A 0xC3
WARNING:file /strings/all.lang, line 11753: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11754: Unexpected UTF-8 characters: 0xC3 0xB5 0x6D 0xC3
WARNING:file /strings/all.lang, line 11754: Unexpected UTF-8 characters: 0xC3 0xBB 0x76 0x65
WARNING:file /strings/all.lang, line 11755: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11756: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11758: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11764: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11768: Unexpected UTF-8 characters: 0xC3 0xBB 0x6B 0xC3
WARNING:file /strings/all.lang, line 11768: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11770: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11771: Unexpected UTF-8 characters: 0xC3 0xBB 0x76 0x65
WARNING:file /strings/all.lang, line 11772: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11780: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11781: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11782: Unexpected UTF-8 characters: 0xC3 0xB5 0x6E 0xC3
WARNING:file /strings/all.lang, line 11782: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11787: Unexpected UTF-8 characters: 0xC3 0xBB 0x63 0x73
WARNING:file /strings/all.lang, line 11788: Unexpected UTF-8 characters: 0xC3 0xBB 0x73 0x7A
WARNING:file /strings/all.lang, line 11788: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11791: Unexpected UTF-8 characters: 0xC3 0xBB 0x7A 0xC3
WARNING:file /strings/all.lang, line 11791: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B 0xC3
WARNING:file /strings/all.lang, line 11791: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11794: Unexpected UTF-8 characters: 0xC3 0xBB 0x76 0x65
WARNING:file /strings/all.lang, line 11796: Unexpected UTF-8 characters: 0xC3 0xB5 0x6A 0x65
WARNING:file /strings/all.lang, line 11799: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x6B
WARNING:file /strings/all.lang, line 11806: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11812: Unexpected UTF-8 characters: 0xC3 0xB5 0x6D 0xC3
WARNING:file /strings/all.lang, line 11812: Unexpected UTF-8 characters: 0xC3 0xBB 0x76 0x65
WARNING:file /strings/all.lang, line 11816: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11819: Unexpected UTF-8 characters: 0xC3 0xB5 0x72
WARNING:file /strings/all.lang, line 11820: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11821: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11823: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0x6D
WARNING:file /strings/all.lang, line 11827: Unexpected UTF-8 characters: 0xC3 0xB5 0x66 0x65
WARNING:file /strings/all.lang, line 11827: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11828: Unexpected UTF-8 characters: 0xC3 0xB5 0x66 0x65
WARNING:file /strings/all.lang, line 11828: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11836: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11838: Unexpected UTF-8 characters: 0xC3 0xB5 0x7A 0xC3
WARNING:file /strings/all.lang, line 11838: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11839: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11840: Unexpected UTF-8 characters: 0xC3 0xB5 0x66 0x61
WARNING:file /strings/all.lang, line 11845: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11848: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11850: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11852: Unexpected UTF-8 characters: 0xC3 0xBB 0xC3 0xB6
WARNING:file /strings/all.lang, line 11852: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11853: Unexpected UTF-8 characters: 0xC3 0xBB 0x67 0x79
WARNING:file /strings/all.lang, line 11871: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11891: Unexpected UTF-8 characters: 0xC3 0xBB 0x72 0x74
WARNING:file /strings/all.lang, line 11896: Unexpected UTF-8 characters: 0xC3 0xBB 0x72 0x74
WARNING:file /strings/all.lang, line 11915: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11923: Unexpected UTF-8 characters: 0xC3 0xBB 0x7A
WARNING:file /strings/all.lang, line 11931: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11934: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11938: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0x73
WARNING:file /strings/all.lang, line 11950: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x48
WARNING:file /strings/all.lang, line 11953: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B
WARNING:file /strings/all.lang, line 11954: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11957: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11960: Unexpected UTF-8 characters: 0xC3 0x95 0x72 0x73
WARNING:file /strings/all.lang, line 11961: Unexpected UTF-8 characters: 0xC3 0x95 0x72 0x73
WARNING:file /strings/all.lang, line 11964: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11966: Unexpected UTF-8 characters: 0xC3 0xB5 0x70 0x61
WARNING:file /strings/all.lang, line 11976: Unexpected UTF-8 characters: 0xC3 0xB5 0x69 0x20
WARNING:file /strings/all.lang, line 11987: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11995: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11996: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11997: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B
WARNING:file /strings/all.lang, line 12007: Unexpected UTF-8 characters: 0xC3 0xBB 0x6B 0x20
WARNING:file /strings/all.lang, line 12017: Unexpected UTF-8 characters: 0xC3 0xB5 0x69 0x20
WARNING:file /strings/all.lang, line 12022: Unexpected UTF-8 characters: 0xC3 0x95 0x72 0x73
WARNING:file /strings/all.lang, line 12026: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 12039: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 12064: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0x73
WARNING:file /strings/all.lang, line 12066: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0x73
WARNING:file /strings/all.lang, line 12070: Unexpected UTF-8 characters: 0xC3 0xB5 0x69 0x20
WARNING:file /strings/all.lang, line 12071: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 12081: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x4B
WARNING:file /strings/all.lang, line 12099: Unexpected UTF-8 characters: 0xC3 0xBB 0x20 0x6B
WARNING:file /strings/all.lang, line 12117: Unexpected UTF-8 characters: 0xC3 0x95 0x72 0x6C
WARNING:file /strings/all.lang, line 12126: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x62
WARNING:file /strings/all.lang, line 12136: Unexpected UTF-8 characters: 0xC3 0xB5 0x73 0x7A
WARNING:file /strings/all.lang, line 12151: Unexpected UTF-8 characters: 0xC3 0x95 0x72 0x73
WARNING:file /strings/all.lang, line 12152: Unexpected UTF-8 characters: 0xC3 0x95 0x72 0x73
WARNING:file /strings/all.lang, line 12163: Unexpected UTF-8 characters: 0xC3 0x95 0x72 0x68
WARNING:file /strings/all.lang, line 12164: Unexpected UTF-8 characters: 0xC3 0x95 0x72 0x70
WARNING:file /strings/all.lang, line 12181: Unexpected UTF-8 characters: 0xC3 0x95 0x72 0x6C
WARNING:file /strings/all.lang, line 12190: Unexpected UTF-8 characters: 0xC3 0xB5 0x68 0xC3
WARNING:file /strings/all.lang, line 12194: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x6B
WARNING:file /strings/all.lang, line 12195: Unexpected UTF-8 characters: 0xC3 0xB5 0x68 0xC3
WARNING:file /strings/all.lang, line 12196: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x6B
WARNING:file /strings/all.lang, line 12201: Unexpected UTF-8 characters: 0xC3 0xBB 0x68 0x65
WARNING:file /strings/all.lang, line 12203: Unexpected UTF-8 characters: 0xC3 0xB5 0x74 0xC3
WARNING:file /strings/all.lang, line 12204: Unexpected UTF-8 characters: 0xC3 0xBB 0x68 0x65
WARNING:file /strings/all.lang, line 12205: Unexpected UTF-8 characters: 0xC3 0xBB 0x68 0x65
WARNING:file /strings/all.lang, line 12237: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x6B
WARNING:file /strings/all.lang, line 12714: Unexpected UTF-8 characters: 0xC3 0xB1 0x6F 0x6C
WARNING:file /strings/all.lang, line 12716: Unexpected UTF-8 characters: 0xC3 0xAA 0x73
WARNING:file /strings/all.lang, line 12719: Unexpected UTF-8 characters: 0xC2 0xAC 0x65 0x73
WARNING:file /strings/all.lang, line 12724: Unexpected UTF-8 characters: 0xC3 0xA0
WARNING:file /strings/all.lang, line 12735: Unexpected UTF-8 characters: 0xC2 0xAE 0x69 0x6E
WARNING:file /strings/all.lang, line 14835: Unexpected UTF-8 characters: 0xCB 0x9D 0x73
WARNING:file /strings/all.lang, line 14836: Unexpected UTF-8 characters: 0xC4 0x8C 0x65 0x73
WARNING:file /strings/all.lang, line 14837: Unexpected UTF-8 characters: 0xC4 0x8D 0x69 0x6E
WARNING:file /strings/all.lang, line 18639: unknown escape char
WARNING:file /strings/all.lang, line 18640: unknown escape char
I18N: 31 strings read from strings/fm/russian.lang
I18N: 31 strings read from strings/fm/english.lang
/proc/cpuinfo CPU processors: 6
/proc/cpuinfo CPU logical cores: 12
CPU core count: 6 physical, 12 logical
HDD not detected: loading threads unlimited
----- Initializing OpenAL -----
Setup OpenAL device and context
OpenAL: found device 'ALSA Default' [ACTIVE]
OpenAL: found device 'Plantronics Blackwire 3220 Seri, USB Audio (CARD=Seri,DEV=0)'
OpenAL: found device 'HDA ATI HDMI, PHL 273V7 (CARD=HDMI,DEV=3)'
OpenAL: found device 'HDA ATI HDMI, HDMI 1 (CARD=HDMI,DEV=7)'
OpenAL: found device 'HDA ATI HDMI, HDMI 2 (CARD=HDMI,DEV=8)'
OpenAL: found device 'HDA ATI HDMI, HDMI 3 (CARD=HDMI,DEV=9)'
OpenAL: found device 'HDA ATI HDMI, HDMI 4 (CARD=HDMI,DEV=10)'
OpenAL: found device 'HDA NVidia, HDMI 0 (CARD=NVidia,DEV=3)'
OpenAL: found device 'HDA NVidia, HDMI 1 (CARD=NVidia,DEV=7)'
OpenAL: found device 'HDA NVidia, HDMI 2 (CARD=NVidia,DEV=8)'
OpenAL: found device 'HDA NVidia, HDMI 3 (CARD=NVidia,DEV=9)'
OpenAL: found device 'HD-Audio Generic, ALC1220 Analog (CARD=Generic,DEV=0)'
OpenAL: device 'ALSA Default' opened successfully
OpenAL: HRTF is available
OpenAL vendor: OpenAL Community
OpenAL renderer: OpenAL Soft
OpenAL version: 1.1 ALSOFT 1.24.1
OpenAL: found EFX extension
OpenAL: HRTF is enabled (reason: 1 = ALC_HRTF_ENABLED_SOFT)
OpenAL: found 256 hardware voices
----- Initializing OpenGL -----
Initializing OpenGL display
GLFW platform used: Wayland (393219)
...initializing QGL

------- Input Initialization -------
------------------------------------
OpenGL vendor: AMD
OpenGL renderer: AMD Radeon RX 6600 XT (radeonsi, navi23, LLVM 20.1.2, DRM 3.64, 7.2.0-ogc3.rc7.1.fc44.x86_64)
OpenGL version: 4.6 (Core Profile) Mesa 25.2.8-0ubuntu0.24.04.1 core
Checking required OpenGL features...
v - using GL_VERSION_3_3
v - using GL_EXT_texture_compression_s3tc
Checking optional OpenGL extensions...
v - using GL_EXT_texture_filter_anisotropic
    maxTextureAnisotropy: 16.000000
v - using GL_ARB_stencil_texturing
v - using GL_EXT_depth_bounds_test
v - using GL_ARB_buffer_storage
v - using GL_ARB_texture_storage
v - using GL_ARB_multi_draw_indirect
v - using GL_ARB_vertex_attrib_binding
X - GL_ARB_compatibility not found
v - using GL_KHR_debug
Max active texture units in fragment shader: 32
Max combined texture units: 192
Max anti-aliasing samples: 8
Max geometry output vertices: 256
Max geometry output components: 4095
Max vertex attribs: 16
---------- R_ReloadGLSLPrograms_f -----------
Linking GLSL program renderTools ...
Linking GLSL program testImageCube ...
---------------------------------
--------- Initializing Game ----------
The Dark Mod 2.15/64, linux-x86_64, code revision 11358
Build date: Aug 20 2026
Initializing event system
...902 event definitions
Initializing class hierarchy
...173 classes, 1818432 bytes for event callbacks
Initializing scripts
---------- Compile stats ----------

Game script memory usage:
       Files: 61
  Statements: 25042, 1001680 bytes (31%)
   Functions: 1408, 184124 bytes (46%)
   Variables: 120408 bytes (31%)
    Mem used: 2308872 bytes
   Allocated: 1224884 bytes
Maximum object size: 936
Largest object type name: ai_trainer_melee
...6 aas types
game initialized.
--------------------------------------
Parsing material files
Found 0 new missions and 0 packages.
Found 24 mods in the FM folder.
Parsed 24 mission declarations.
No 'tdm_mapsequence.txt' file found for the current mod: crown_of_penitence
-------- Initializing Session --------
session initialized
--------------------------------------
Font fonts/russian/mason_glow in size 12 not found, using size 48 instead.
Font fonts/russian/mason_glow in size 24 not found, using size 48 instead.
Font fonts/russian/mason in size 12 not found, using size 48 instead.
Font fonts/russian/mason in size 24 not found, using size 48 instead.
WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'QuitGameDialogAskEverytimeOption' has value count unequal to choices count
WARNING:file /fms/crown_of_penitence/crown_of_penitence_l10n.pk4/guis/mainmenu_briefing.gui, line 273: wrong number of arguments for script command set: 5 instead of [2..2], maybe missing semicolon?
WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'BowAimer' has value count unequal to choices count
WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'BlackjackIndicator' has value count unequal to choices count
WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'MeleeInvertAttack' has value count unequal to choices count
WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'MeleeInvertParry' has value count unequal to choices count
WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'InvPickupMessagesChoices' has value count unequal to choices count
WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'HideLightgemChoices' has value count unequal to choices count
WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'HighlightHeldObjectsChoices' has value count unequal to choices count
WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'DynHudAmmoChangeChoices' has value count unequal to choices count
WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'DynHudArrowsChoices' has value count unequal to choices count
WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'DynHudPickupChoices' has value count unequal to choices count
WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'SCGeneralBind7' has value count unequal to choices count
--- Common Initialization Complete ---
------------- Warnings ---------------
during The Dark Mod initialization...
WARNING:file /strings/all.lang, line 10886: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x72
WARNING:file /strings/all.lang, line 10886: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B 0x6E
WARNING:file /strings/all.lang, line 10886: Unexpected UTF-8 characters: 0xC3 0xB5 0x6C 0x20
WARNING:file /strings/all.lang, line 10887: Unexpected UTF-8 characters: 0xC3 0xB5 0x6E 0x79
WARNING:file /strings/all.lang, line 10908: Unexpected UTF-8 characters: 0xC3 0xBB 0x20 0x6D
WARNING:file /strings/all.lang, line 10909: Unexpected UTF-8 characters: 0xC3 0xBB 0x20 0x6D
WARNING:file /strings/all.lang, line 10910: Unexpected UTF-8 characters: 0xC3 0xB5 0x64 0x64
WARNING:file /strings/all.lang, line 10910: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B 0x65
WARNING:file /strings/all.lang, line 10910: Unexpected UTF-8 characters: 0xC3 0xB5 0x6C 0xC3
WARNING:file /strings/all.lang, line 10910: Unexpected UTF-8 characters: 0xC3 0xBB 0x7A 0x20
WARNING:file /strings/all.lang, line 10912: Unexpected UTF-8 characters: 0xC3 0xBB 0x65 0x6E
WARNING:file /strings/all.lang, line 10913: Unexpected UTF-8 characters: 0xC3 0xBB 0x74 0x2E
WARNING:file /strings/all.lang, line 10914: Unexpected UTF-8 characters: 0xC3 0xBB 0x20 0x73
WARNING:file /strings/all.lang, line 10915: Unexpected UTF-8 characters: 0xC3 0xB5 0x76 0x65
WARNING:file /strings/all.lang, line 10915: Unexpected UTF-8 characters: 0xC3 0xBB 0x6B 0xC3
WARNING:file /strings/all.lang, line 10918: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0xC3
WARNING:file /strings/all.lang, line 10919: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0xC3
WARNING:file /strings/all.lang, line 10920: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0x20
WARNING:file /strings/all.lang, line 10941: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x6A
WARNING:file /strings/all.lang, line 10944: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x61
WARNING:file /strings/all.lang, line 10961: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B
WARNING:file /strings/all.lang, line 10963: Unexpected UTF-8 characters: 0xC3 0xB5 0x6C
WARNING:file /strings/all.lang, line 10971: Unexpected UTF-8 characters: 0xC3 0xB5 0x6D 0x65
WARNING:file /strings/all.lang, line 10972: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x4B
WARNING:file /strings/all.lang, line 10993: Unexpected UTF-8 characters: 0xC3 0xBB 0x76 0x65
WARNING:file /strings/all.lang, line 11000: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x65
WARNING:file /strings/all.lang, line 11002: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0x7A
WARNING:file /strings/all.lang, line 11011: Unexpected UTF-8 characters: 0xC3 0xB5 0x28 0x65
WARNING:file /strings/all.lang, line 11013: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B 0x65
WARNING:file /strings/all.lang, line 11014: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0x69
WARNING:file /strings/all.lang, line 11026: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11029: Unexpected UTF-8 characters: 0xC3 0xBB 0x72 0xC3
WARNING:file /strings/all.lang, line 11045: Unexpected UTF-8 characters: 0xC3 0xB5 0x3A
WARNING:file /strings/all.lang, line 11050: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x3E
WARNING:file /strings/all.lang, line 11051: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11051: Unexpected UTF-8 characters: 0xC3 0xB5 0x7A 0xC3
WARNING:file /strings/all.lang, line 11064: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x45
WARNING:file /strings/all.lang, line 11065: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x45
WARNING:file /strings/all.lang, line 11065: Unexpected UTF-8 characters: 0xC3 0xB5 0x7A 0xC3
WARNING:file /strings/all.lang, line 11066: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x45
WARNING:file /strings/all.lang, line 11067: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x45
WARNING:file /strings/all.lang, line 11067: Unexpected UTF-8 characters: 0xC3 0xB5 0x7A 0xC3
WARNING:file /strings/all.lang, line 11069: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x45
WARNING:file /strings/all.lang, line 11072: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11073: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11079: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x6B
WARNING:file /strings/all.lang, line 11082: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11085: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x48
WARNING:file /strings/all.lang, line 11094: Unexpected UTF-8 characters: 0xC3 0xB5 0x3A 0x20
WARNING:file /strings/all.lang, line 11095: Unexpected UTF-8 characters: 0xC3 0xB5 0x3A 0x20
WARNING:file /strings/all.lang, line 11102: Unexpected UTF-8 characters: 0xC3 0xB5 0x73 0x73
WARNING:file /strings/all.lang, line 11144: Unexpected UTF-8 characters: 0xC3 0xBB 0x20 0x66
WARNING:file /strings/all.lang, line 11144: Unexpected UTF-8 characters: 0xC3 0xBB 0x20 0x74
WARNING:file /strings/all.lang, line 11146: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B 0x2C
WARNING:file /strings/all.lang, line 11146: Unexpected UTF-8 characters: 0xC3 0xBB 0x20 0x6E
WARNING:file /strings/all.lang, line 11148: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x67
WARNING:file /strings/all.lang, line 11148: Unexpected UTF-8 characters: 0xC3 0xB5 0x74 0x20
WARNING:file /strings/all.lang, line 11149: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x68
WARNING:file /strings/all.lang, line 11150: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x67
WARNING:file /strings/all.lang, line 11150: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B 0x2C
WARNING:file /strings/all.lang, line 11151: Unexpected UTF-8 characters: 0xC3 0xB5 0x65 0x6E
WARNING:file /strings/all.lang, line 11151: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B 0x20
WARNING:file /strings/all.lang, line 11152: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B 0x2C
WARNING:file /strings/all.lang, line 11153: Unexpected UTF-8 characters: 0xC3 0xB5 0x2C 0x20
WARNING:file /strings/all.lang, line 11153: Unexpected UTF-8 characters: 0xC3 0xB5 0x65 0x6E
WARNING:file /strings/all.lang, line 11154: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x65
WARNING:file /strings/all.lang, line 11154: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0x7A
WARNING:file /strings/all.lang, line 11154: Unexpected UTF-8 characters: 0xC3 0xB5 0x73 0x65
WARNING:file /strings/all.lang, line 11155: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x61
WARNING:file /strings/all.lang, line 11155: Unexpected UTF-8 characters: 0xC3 0xB5 0x73 0x20
WARNING:file /strings/all.lang, line 11156: Unexpected UTF-8 characters: 0xC3 0xB5 0x6C 0x20
WARNING:file /strings/all.lang, line 11157: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x62
WARNING:file /strings/all.lang, line 11157: Unexpected UTF-8 characters: 0xC3 0xB5 0x73 0x65
WARNING:file /strings/all.lang, line 11158: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x66
WARNING:file /strings/all.lang, line 11158: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B 0x20
WARNING:file /strings/all.lang, line 11158: Unexpected UTF-8 characters: 0xC3 0xB5 0x6C 0x20
WARNING:file /strings/all.lang, line 11159: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x66
WARNING:file /strings/all.lang, line 11159: Unexpected UTF-8 characters: 0xC3 0xB5 0x64 0xC3
WARNING:file /strings/all.lang, line 11159: Unexpected UTF-8 characters: 0xC3 0xB5 0x7A 0x76
WARNING:file /strings/all.lang, line 11160: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x66
WARNING:file /strings/all.lang, line 11161: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x70
WARNING:file /strings/all.lang, line 11161: Unexpected UTF-8 characters: 0xC3 0xB5 0x68 0x6F
WARNING:file /strings/all.lang, line 11161: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B 0x62
WARNING:file /strings/all.lang, line 11200: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11204: Unexpected UTF-8 characters: 0xC3 0xBB 0x20 0x45
WARNING:file /strings/all.lang, line 11208: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x45
WARNING:file /strings/all.lang, line 11233: Unexpected UTF-8 characters: 0xC3 0xB5 0x64 0xC3
WARNING:file /strings/all.lang, line 11235: Unexpected UTF-8 characters: 0xC3 0xBB
WARNING:file /strings/all.lang, line 11236: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11237: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B
WARNING:file /strings/all.lang, line 11244: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11245: Unexpected UTF-8 characters: 0xC3 0xBB
WARNING:file /strings/all.lang, line 11246: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x49
WARNING:file /strings/all.lang, line 11247: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x46
WARNING:file /strings/all.lang, line 11250: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B
WARNING:file /strings/all.lang, line 11255: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0x65
WARNING:file /strings/all.lang, line 11262: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0x65
WARNING:file /strings/all.lang, line 11273: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x46
WARNING:file /strings/all.lang, line 11273: Unexpected UTF-8 characters: 0xC3 0xB5 0x7A 0xC3
WARNING:file /strings/all.lang, line 11274: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x46
WARNING:file /strings/all.lang, line 11278: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11279: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11280: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11280: Unexpected UTF-8 characters: 0xC3 0xBB 0x7A 0x20
WARNING:file /strings/all.lang, line 11281: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11282: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11283: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11283: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x6E
WARNING:file /strings/all.lang, line 11284: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11285: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11296: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11298: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11300: Unexpected UTF-8 characters: 0xC3 0xB5 0x6D 0x65
WARNING:file /strings/all.lang, line 11316: Unexpected UTF-8 characters: 0xC3 0xB1 0x6F 0x6C
WARNING:file /strings/all.lang, line 11318: Unexpected UTF-8 characters: 0xC3 0xAA 0x73
WARNING:file /strings/all.lang, line 11321: Unexpected UTF-8 characters: 0xC2 0xAC 0x65 0x73
WARNING:file /strings/all.lang, line 11326: Unexpected UTF-8 characters: 0xC3 0xA0
WARNING:file /strings/all.lang, line 11337: Unexpected UTF-8 characters: 0xC2 0xAE 0x69 0x6E
WARNING:file /strings/all.lang, line 11348: Unexpected UTF-8 characters: 0xC3 0xB5 0x6C 0x3F
WARNING:file /strings/all.lang, line 11353: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11365: Unexpected UTF-8 characters: 0xC3 0xBB
WARNING:file /strings/all.lang, line 11368: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11375: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B 0x65
WARNING:file /strings/all.lang, line 11386: Unexpected UTF-8 characters: 0xC3 0xB5 0x65 0x6E
WARNING:file /strings/all.lang, line 11405: Unexpected UTF-8 characters: 0xC3 0xBB
WARNING:file /strings/all.lang, line 11525: Unexpected UTF-8 characters: 0xC3 0xB5 0x73 0xC3
WARNING:file /strings/all.lang, line 11527: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11529: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x46
WARNING:file /strings/all.lang, line 11530: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x4C
WARNING:file /strings/all.lang, line 11556: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0x7A
WARNING:file /strings/all.lang, line 11568: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11569: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B 0xC3
WARNING:file /strings/all.lang, line 11569: Unexpected UTF-8 characters: 0xC3 0xB5 0x6C 0x20
WARNING:file /strings/all.lang, line 11570: Unexpected UTF-8 characters: 0xC3 0xB5 0x62 0x62
WARNING:file /strings/all.lang, line 11579: Unexpected UTF-8 characters: 0xC3 0xB5 0x3B 0x46
WARNING:file /strings/all.lang, line 11585: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11586: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11594: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x68
WARNING:file /strings/all.lang, line 11594: Unexpected UTF-8 characters: 0xC3 0xB5 0x2E 0x20
WARNING:file /strings/all.lang, line 11595: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x65
WARNING:file /strings/all.lang, line 11596: Unexpected UTF-8 characters: 0xC3 0xB5 0x2E
WARNING:file /strings/all.lang, line 11598: Unexpected UTF-8 characters: 0xC3 0xB5 0x70 0x75
WARNING:file /strings/all.lang, line 11598: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0x69
WARNING:file /strings/all.lang, line 11618: Unexpected UTF-8 characters: 0xC3 0xBB 0x3B 0x4C
WARNING:file /strings/all.lang, line 11620: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B 0x65
WARNING:file /strings/all.lang, line 11624: Unexpected UTF-8 characters: 0xC3 0xB5 0x3B 0x48
WARNING:file /strings/all.lang, line 11633: Unexpected UTF-8 characters: 0xC3 0xBB 0x7A 0x20
WARNING:file /strings/all.lang, line 11639: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11642: Unexpected UTF-8 characters: 0xC3 0xB5 0x68 0x61
WARNING:file /strings/all.lang, line 11675: Unexpected UTF-8 characters: 0xC3 0xB5 0x70 0x61
WARNING:file /strings/all.lang, line 11689: Unexpected UTF-8 characters: 0xC3 0xB5 0x72
WARNING:file /strings/all.lang, line 11693: Unexpected UTF-8 characters: 0xC3 0xB5 0x72
WARNING:file /strings/all.lang, line 11694: Unexpected UTF-8 characters: 0xC3 0xB5 0x72
WARNING:file /strings/all.lang, line 11702: Unexpected UTF-8 characters: 0xC3 0xB5 0x72
WARNING:file /strings/all.lang, line 11709: Unexpected UTF-8 characters: 0xC3 0x95 0x72 0xC3
WARNING:file /strings/all.lang, line 11726: Unexpected UTF-8 characters: 0xC3 0x95 0x72 0x73
WARNING:file /strings/all.lang, line 11734: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11743: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11744: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11744: Unexpected UTF-8 characters: 0xC3 0xB5 0x7A 0xC3
WARNING:file /strings/all.lang, line 11749: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11750: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0x64
WARNING:file /strings/all.lang, line 11750: Unexpected UTF-8 characters: 0xC3 0xBB 0x76 0x65
WARNING:file /strings/all.lang, line 11752: Unexpected UTF-8 characters: 0xC3 0xBB 0x76 0x65
WARNING:file /strings/all.lang, line 11753: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11753: Unexpected UTF-8 characters: 0xC3 0xB5 0x7A 0xC3
WARNING:file /strings/all.lang, line 11754: Unexpected UTF-8 characters: 0xC3 0xB5 0x6D 0xC3
WARNING:file /strings/all.lang, line 11754: Unexpected UTF-8 characters: 0xC3 0xBB 0x76 0x65
WARNING:file /strings/all.lang, line 11755: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11756: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11758: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11764: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11768: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11768: Unexpected UTF-8 characters: 0xC3 0xBB 0x6B 0xC3
WARNING:file /strings/all.lang, line 11770: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11771: Unexpected UTF-8 characters: 0xC3 0xBB 0x76 0x65
WARNING:file /strings/all.lang, line 11772: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11780: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11781: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11782: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11782: Unexpected UTF-8 characters: 0xC3 0xB5 0x6E 0xC3
WARNING:file /strings/all.lang, line 11787: Unexpected UTF-8 characters: 0xC3 0xBB 0x63 0x73
WARNING:file /strings/all.lang, line 11788: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11788: Unexpected UTF-8 characters: 0xC3 0xBB 0x73 0x7A
WARNING:file /strings/all.lang, line 11791: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11791: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B 0xC3
WARNING:file /strings/all.lang, line 11791: Unexpected UTF-8 characters: 0xC3 0xBB 0x7A 0xC3
WARNING:file /strings/all.lang, line 11794: Unexpected UTF-8 characters: 0xC3 0xBB 0x76 0x65
WARNING:file /strings/all.lang, line 11796: Unexpected UTF-8 characters: 0xC3 0xB5 0x6A 0x65
WARNING:file /strings/all.lang, line 11799: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x6B
WARNING:file /strings/all.lang, line 11806: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11812: Unexpected UTF-8 characters: 0xC3 0xB5 0x6D 0xC3
WARNING:file /strings/all.lang, line 11812: Unexpected UTF-8 characters: 0xC3 0xBB 0x76 0x65
WARNING:file /strings/all.lang, line 11816: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11819: Unexpected UTF-8 characters: 0xC3 0xB5 0x72
WARNING:file /strings/all.lang, line 11820: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11821: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11823: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0x6D
WARNING:file /strings/all.lang, line 11827: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11827: Unexpected UTF-8 characters: 0xC3 0xB5 0x66 0x65
WARNING:file /strings/all.lang, line 11828: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11828: Unexpected UTF-8 characters: 0xC3 0xB5 0x66 0x65
WARNING:file /strings/all.lang, line 11836: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11838: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11838: Unexpected UTF-8 characters: 0xC3 0xB5 0x7A 0xC3
WARNING:file /strings/all.lang, line 11839: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11840: Unexpected UTF-8 characters: 0xC3 0xB5 0x66 0x61
WARNING:file /strings/all.lang, line 11845: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11848: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11850: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11852: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11852: Unexpected UTF-8 characters: 0xC3 0xBB 0xC3 0xB6
WARNING:file /strings/all.lang, line 11853: Unexpected UTF-8 characters: 0xC3 0xBB 0x67 0x79
WARNING:file /strings/all.lang, line 11871: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11891: Unexpected UTF-8 characters: 0xC3 0xBB 0x72 0x74
WARNING:file /strings/all.lang, line 11896: Unexpected UTF-8 characters: 0xC3 0xBB 0x72 0x74
WARNING:file /strings/all.lang, line 11915: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11923: Unexpected UTF-8 characters: 0xC3 0xBB 0x7A
WARNING:file /strings/all.lang, line 11931: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11934: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11938: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0x73
WARNING:file /strings/all.lang, line 11950: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x48
WARNING:file /strings/all.lang, line 11953: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B
WARNING:file /strings/all.lang, line 11954: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11957: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11960: Unexpected UTF-8 characters: 0xC3 0x95 0x72 0x73
WARNING:file /strings/all.lang, line 11961: Unexpected UTF-8 characters: 0xC3 0x95 0x72 0x73
WARNING:file /strings/all.lang, line 11964: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11966: Unexpected UTF-8 characters: 0xC3 0xB5 0x70 0x61
WARNING:file /strings/all.lang, line 11976: Unexpected UTF-8 characters: 0xC3 0xB5 0x69 0x20
WARNING:file /strings/all.lang, line 11987: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11995: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11996: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 11997: Unexpected UTF-8 characters: 0xC3 0xB5 0x6B
WARNING:file /strings/all.lang, line 12007: Unexpected UTF-8 characters: 0xC3 0xBB 0x6B 0x20
WARNING:file /strings/all.lang, line 12017: Unexpected UTF-8 characters: 0xC3 0xB5 0x69 0x20
WARNING:file /strings/all.lang, line 12022: Unexpected UTF-8 characters: 0xC3 0x95 0x72 0x73
WARNING:file /strings/all.lang, line 12026: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 12039: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 12064: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0x73
WARNING:file /strings/all.lang, line 12066: Unexpected UTF-8 characters: 0xC3 0xB5 0x72 0x73
WARNING:file /strings/all.lang, line 12070: Unexpected UTF-8 characters: 0xC3 0xB5 0x69 0x20
WARNING:file /strings/all.lang, line 12071: Unexpected UTF-8 characters: 0xC3 0xB5
WARNING:file /strings/all.lang, line 12081: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x4B
WARNING:file /strings/all.lang, line 12099: Unexpected UTF-8 characters: 0xC3 0xBB 0x20 0x6B
WARNING:file /strings/all.lang, line 12117: Unexpected UTF-8 characters: 0xC3 0x95 0x72 0x6C
WARNING:file /strings/all.lang, line 12126: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x62
WARNING:file /strings/all.lang, line 12136: Unexpected UTF-8 characters: 0xC3 0xB5 0x73 0x7A
WARNING:file /strings/all.lang, line 12151: Unexpected UTF-8 characters: 0xC3 0x95 0x72 0x73
WARNING:file /strings/all.lang, line 12152: Unexpected UTF-8 characters: 0xC3 0x95 0x72 0x73
WARNING:file /strings/all.lang, line 12163: Unexpected UTF-8 characters: 0xC3 0x95 0x72 0x68
WARNING:file /strings/all.lang, line 12164: Unexpected UTF-8 characters: 0xC3 0x95 0x72 0x70
WARNING:file /strings/all.lang, line 12181: Unexpected UTF-8 characters: 0xC3 0x95 0x72 0x6C
WARNING:file /strings/all.lang, line 12190: Unexpected UTF-8 characters: 0xC3 0xB5 0x68 0xC3
WARNING:file /strings/all.lang, line 12194: Unexpected UTF-8 characters: 0xC3 0xB5 0x20 0x6B
WARNING:file /strings/all.lang, line 12195: Unexpected UTF-8 characters: 0xC3 0xB5 0x68 0xC3

 

 

  • Like 1
Posted
20 hours ago, stgatilov said:

But... there is no requirement to put everything into one line.

That does help. Have to figure out the role of tabs, then. Is a tab prohibited/optional/required before "map_text"? As a separator, if using a LF, is a tab then prohibited/optional/required?

Orthogonal to that issue, another way to go would be to not have a separate "map_text" keyword, but tuck it into the first string, e.g. "#txt_Unable to save", where the #txt_ prefix (which only appears in the lang file) would be stripped off after read.

Posted
20 hours ago, stgatilov said:

Would it really be simpler to have every language in its own file?
When we add a string, we rarely add it to all the 17 languages, so it is not very easy to learn about it afterwards. Are you sure putting all languages together for each string wouldn't be easier?

The pivot view, with all the languages together, does have its uses, but it is harder to see the bigger picture. So for a layout of rows in a page, consider the previous example, but with lots of languages:

// row 7:
    "#str_02933"    "Uncap FPS"
    ... 15 more languages for this line

    "#str_menu_uncap_fps_tooltip"    "Sync game modeling to rendering\nRequired for FPS higher than 60"
    ... 15 more languages for this line
// row 8:

You'd only be able to see the specs for a few rows at time on your screen, so harder to get a sense of the page as a whole. Less so if you limited a file to only 2 languages (english presumably as a comment/reference & the target language).

Posted
20 hours ago, stgatilov said:

These are the warnings, each contains 4 bytes which can't be decoded using provided charmap, usually the first two denote the problematic character

I'm guessing the warning line numbering is off, as is usual. I can't figure out if this is from 2.14 all.lang or 2.15 dev. Can you change the warnings to give more info, like offending string and offset? Maybe write to a utf8 file, so you can render the offending char directly?

Posted

@stgatilov, could you confirm that your new all.lang  --> latin-x process, still invokes (after that conversion) the use of .map files like strings/hungarian.map (or a comparable procedure)?

Posted

Here is an example screen shot with #str_03000 "easy" translated to Hungarian as "Könnyû", but the last character is displayed as question mark. This is how the original code works, none of my UTF-8 changes.

tdm_hungarian_difficulty.thumb.jpg.3b12cda8a8fea6f38e18bd3b6bba6299.jpg

As for my UTF-8 version, it does not use the .map files. I thought that without them I'll see all the letters broken, but at least the Russian language shows up properly. So... can I simply ignore them?
UPDATE: I think I see problems in Czech language. So .map files are necessary sometimes, but apparently not for every language.

The new engine reads all.lang directly right now (will be renamed to all.utf8lang and probably reformatted).
It uses .utf8map files which explain how to map non-ASCII UTF-8 characters into internal 8-bit characters for specific language. I generated these files by checking all.lang against russian.lang and similar files.

UPDATE: Now that I have baked .map files into my .utf8map, I still see missing characters sometimes.
For instance, here is Slovak language, and this is without my changes:

tdm_slovak_languages.thumb.jpg.8f75bbdce4dc9b898317afdd1f934cd3.jpg

So I'm sorry to return to this, but I'm confident that the language names in the language selection screen should be in English to avoid all this confusion and quadratic number of variants to test.

russian.utf8map

  • Like 2
Posted

Took a while to figure things out. There are problems with the languages section of the 2.14 all.lang file. Looks like still in 2.15. Fixing those (as below) should largely address anomalies. I continue to support showing the native languages on this page.

I suggest you do the following with your experimental 2.15 all.utf8lang:

From the [Czech] section,  copy strings within the range #str_02461 - 02483 as full replacements for that range in [Hungarian], [Slovak], and [Polish]. All 4 of these are 8859-2 languages, so should have identical stuff in this range. [Czech] seems the best, so should get rid of problems in the other 3.

In all the iso-8859-1 sections except [English],  namely [German],[Italian],[Spanish],[Portuguese],[Swedish],[Danish],Dutch],[Catalan], comment out the entire range #str_02460 - #str_02483.  It will be much better for maintenance & consistency to just use the default [English] strings. (Portuguese is particularly screwed up.)

Also, testing with the 2.14 Carleton 24pt font will have some shortcomings compared to 2.15 Carleton 24pt font.

I've spent 3 weeks reformating the [English] section of all.lang to closely reflect the UI layout and do more clustering of related phrases. Mostly done, but needs further verification (coverage & duplicates) and tweaks before I release it to you & others.

I'm glad you're folding the <lang>.map stuff into your cpp code. Makes good sense.

Posted
6 hours ago, Geep said:

(Portuguese is particularly screwed up.)

I don't know what you mean.
Specifically Portuguese language looks fine to me both in the language list and in general.

Quote

From the [Czech] section,  copy strings within the range #str_02461 - 02483 as full replacements for that range...

I guess I'll leave it to you if you are eager to mess with it.
The only thing important to me is that the switch to the new system does not break more than was broken.

Quote

All 4 of these are 8859-2 languages, so should have identical stuff in this range.

I don't know why someone needs to bother with those old 8-bit encodings, to be honest.
Well, if it is convenient to map one of them to our font characters, then I guess it is okay, but otherwise...

Posted
20 minutes ago, stgatilov said:

I don't know why someone needs to bother with those old 8-bit encodings, to be honest.
Well, if it is convenient to map one of them to our font characters, then I guess it is okay,

Regrettably, required by the current TDM implementation, and so when someone names a "save", it will understand their keyboard correctly, likewise key bindings. In theory, it would be good to go over to UTF8 internally for all TDM strings & key handling, but that's a big project that would need a hero.

As for testing my proposed fixes...

25 minutes ago, stgatilov said:

I guess I'll leave it to you if you are eager to mess with it.

It would be easy for you to test those changes in your ut8.lang build right now. I'm only downloading dev builds, so I don't think I can directly change all.lang & get it to run (due to the manifest).

As for Portuguese, well, I just discovered it assigned #str_02469 to Netherlands instead of Catalan, so links are messed up.

Posted
10 hours ago, Geep said:

Regrettably, required by the current TDM implementation, and so when someone names a "save", it will understand their keyboard correctly, likewise key bindings.

If someone saves a file, ASCII characters work fine regardless of language.
And using non-ASCII characters in a game that old is asking for trouble anyway (although I'd say the same about the new games / apps too).

  • 2 weeks later...
Posted

I have committed my changes to SVN, now SVN works on the UTF-8 system.
It reads all language strings from all.utf8lang file, and only reads old-style {language}.lang files for missions if the equivalent new-style files are not available.
The core .lang / .map files are present yet, but will hopefully be deleted.

In the end, I had to manually add some characters to utf8map to suppress warnings. They were not handled by the old engine:

Spoiler

hungarian:

    char 0xC3 0xB5 : 0x3F
    char 0xC3 0xBB : 0x3F
    char 0xC3 0xB1 : 0x3F
    char 0xC3 0xAA : 0x3F
    char 0xC3 0xAC : 0x3F
    char 0xC3 0xA0 : 0x3F
    char 0xC3 0x95 : 0x3F
    char 0xC2 0xAC : 0x3F
    char 0xC2 0xAE : 0x3F

slovak:

    char 0xC3 0xB1 : 0x3F
    char 0xC3 0xAA : 0x3F
    char 0xC2 0xAC : 0x3F
    char 0xC3 0xA0 : 0x3F
    char 0xC2 0xAE : 0x3F
    char 0xCB 0x9D : 0x3F

swedish:

    char 0xCB 0x9D : 0x3F
    char 0xC4 0x8C : 0x3F
    char 0xC4 0x8D : 0x3F

I simply remapped them all to the question mark. It seems that the majority of them come from language names, and I don't care if they look broken or have question marks. I have already stated my position about language names.

At the current moment, .utf8lang uses the same format as .lang, but this is temporary.
As I said before, this must be changed in order to not lock us into compatibility trap.
The format should be a sequence of "commands", each command starting with a keyword saying which command it is. And global state should be kept to minimum (e.g. current language seems acceptable).


In addition to the current "#str_{name}" placeholders, I'd like to add two more types of replacements for missions.

1) Plain-text replacements, i.e. replace "Not enough drive space to save the game." with "Não há espaço para salvar o jogo.", as I suggested before.
This approach provides zero inconvenience for the mapper, but it rather unreliable. It becomes especially bad for short strings.
This kind of replacements is not cheap to perform, but I think I know how to do it efficiently. The first version will do it with bruteforce algorithm, we don't have any plain-text replacements yet anyway.

2) Full-text + ID replacements, i.e. replace "Not enough drive space to save the game.#id_nospacesave#" with "Não há espaço para salvar o jogo.#id_nospacesave#". The #id_...# placeholders are stripped from the text by the engine even if translation does not exist. If translation exists, then the engine verifies the context around the placeholder and does not apply it in case of mismatch.
This approach gives mild inconvenience to the mapper, since he can clearly see the original text but has to tolerance this annoying tag at the end. The mapper can even edit the text without touching the placeholder: the obsolete translations will stop working automatically.
I have a feeling that plain-text replacements won't be enough for the missions, and hope that such extra "tags" can be used here and there to make it more reliable.

  • Like 1
Posted

I have stated my position about language names as well, and littering them with question marks ain't it. But as an alternative to the current mechanism, why don't we just make the settings/video/languages into a fixed image rectangle with all the proper language strings burned in? So no need for special character-set gymnastics (and Russian always shown in Cyrillic).

Posted

Turning to all.lang: This last month I've been researching & rearranging the [English] contents of all.lang to be reflective of the actual uses and page layout. So that there's better context for subsequent translations. After much manual effort, the link below has what I've come up with. Within that file, there are beginning notes (meant as a preamble extension) to describe my conventions. The overall ordering is roughly -

  1. stock weapons & tools (in shop & inventory)
  2. main menu layouts, with a large section devoted to settings layouts
  3. lists of named items of interest to FM authors (this section is not much changed from original)
  4. possibly unused strings

all[English_only_reworked].lang

Note this file has no language section besides [English]. This is intended to be a reasonably-tested drop-in replacement for the existing all.lang 2.15 dev [English]. To make full use of it's strings, there are a few gui/cpp improvements... I'll write up a bugtracker post about them in a few days.

Also, here is the corresponding generated english.lang file, in traditional style (alphanumeric order, no comment lines). Useful for doing file diffs against english.lang shipped with any other TDM versions.

english.lang

I'd like to see this reworked format become a basis for the standard 2.15 [English] going forward. The existing [language] sections of all.lang could be programmatically reordered to match this format (I can work on this). And further rearrangements to sync with some of stgatilov's ideas are possible too.

EDIT: Here are bugtracker posts I mentioned:

0006742: Tooltip Shortcomings in Settings GUI
0006743: Replace & Test Hard-Coded Strings

  • Like 2
Posted
On 9/9/2026 at 3:33 AM, Geep said:

But as an alternative to the current mechanism, why don't we just make the settings/video/languages into a fixed image rectangle with all the proper language strings burned in?

Sound relatively good, but there are downsides.

For instance, the last time @STiFU looked into TDM credits, he found out that the list of names there is imbued into DDS image without any source files. Maybe that's credits have not been updated to ages? 😁

The same can happen to language names in images. Even if you make a separate image per language, as soon as someone decides to add a new language or change font/style, it is easier to switch back to text than trying to maintain images.

On 9/9/2026 at 4:08 AM, Geep said:

Turning to all.lang: This last month I've been researching & rearranging the [English] contents of all.lang to be reflective of the actual uses and page layout. 

I can't imagine how much time you spent on this!
I never imagines anyone would be patient enough to completely rework the order 🙂

I hope we can maintain it in English section.
Not sure for the language sections though, perhaps it is easier to just strip all comments from them.
 

  • Like 1
Posted
2 hours ago, stgatilov said:

Sound relatively good, but there are downsides.

I agree about the downsides you mentioned. I would rather we stuck with text and further revised the C++ code so it could handle (or emulate) the .map file tricks rather than map to question marks. But I'm OK with going to an image if that's the only way to preserve non-ugly native language names.

I suppose to add flexibility for future languages, you could have a hybrid page, where some languages were burned-in and some were text. Not sure how viable that would be as a solution.

  • Like 1
Posted
3 hours ago, stgatilov said:

I hope we can maintain it in English section.
Not sure for the language sections though, perhaps it is easier to just strip all comments from them.

Since, with this new layout, it often should be clearer where to insert a new string, maybe it wouldn't be too hard to maintain.

As for the language sections, I guess it depends on whether we're going to provide a specialized editor for the file, or not. Such an editor could, say, display every line from the [English] part, interspersed with #str_id from a particular [language] section. (You could have various file formats and conversion routines to slosh back & forth to achieve the same end.)

Otherwise, using a plain text editor alone, stripping the comments would just destroy the context for the translator.

Posted
19 hours ago, Geep said:

As for the language sections, I guess it depends on whether we're going to provide a specialized editor for the file, or not.

Oh my God, this is where I should pretend like I have never taken part in this conversation. 🤣
I definitely don't want to implement anything like an editor.

If we are talking on this level, then the only viable solution would be to take some common localization format which supports the subset that TDM uses and then use existing editors.
For instance, it seems that GNU gettext can be used, it is based on full-text replacements.

Then the whole pipeline should be like this:

  1. We need to maintain some code that runs through core/FM and finds all strings that are worth translating, then writes them to POT file. It was done in C++ at Doom 3 times, then that code was commented out and Perl code was written in its place. I suppose it is necessary to have something like this anyway if we want people to translate missions...
  2. Translators use available software which support gettext/PO format to generate per-language PO files in UTF-8.
  3. PO files are put into strings/ (core) or into mission strings/fm (mission).
  4. TDM engine parses PO files natively along with .utf8map files and fills its internal 8-bit database.

If I'm not mistaken, gettext normally replaces complete English plaintext with local text. I suppose we can just put our #str_omg placeholders as "original English text" into it, and thus support both placeholder replacement as we have now and full-text replacement as I suggested for missions.

Posted
1 hour ago, stgatilov said:

I definitely don't want to implement anything like an editor.

Yeah, me either. I can write viewers and converters, but wouldn't attempt an editor.

I'll think about your workflow ideas tomorrow, when my brain's not so fried. 

Posted
On 9/14/2026 at 1:58 PM, stgatilov said:

If we are talking on this level, then the only viable solution would be to take some common localization format which supports the subset that TDM uses and then use existing editors.
For instance, it seems that GNU gettext can be used, it is based on full-text replacements.

Then the whole pipeline should be like this:

  1. We need to maintain some code that runs through core/FM and finds all strings that are worth translating, then writes them to POT file. It was done in C++ at Doom 3 times, then that code was commented out and Perl code was written in its place. I suppose it is necessary to have something like this anyway if we want people to translate missions...
  2. Translators use available software which support gettext/PO format to generate per-language PO files in UTF-8.
  3. PO files are put into strings/ (core) or into mission strings/fm (mission).
  4. TDM engine parses PO files natively along with .utf8map files and fills its internal 8-bit database.

If I'm not mistaken, gettext normally replaces complete English plaintext with local text. I suppose we can just put our #str_omg placeholders as "original English text" into it, and thus support both placeholder replacement as we have now and full-text replacement as I suggested for missions.

I took a brief glance at the gettext/po system, and editors like poedit. This is very much in the Linux world, so a bit squirrelly for me. But some thoughts...

RE (1). It would probably be way easier to just convert the all.lang[English] to en.pot (utf8 encoded), then further extend to other language .po files using existing all.lang [language] sections

2) Yeah, further add with poedit (or AI)

3-4) Agree. Don't need to generate .mo locale-specific binary files. (Existing windows methods to do this seem to require foreign-language locale available on mo generation machine; OK for teams of real translators, not for AI). Instead, engine reads utf8 po files directly.

How to use existing #str? I can think of 2 ways (gotta run, more later)

Posted

@stgatilov, I've tried to get up to speed on the xgettext/.pot/.po stuff, and the implications of migrating to using that for the core all.lang data (setting aside usage for FM data). In my remarks here, I'm going to use REVALL to refer to my revised/restructured all.lang[English] file.

My goals were –

  • to preserve in some form the new manual contextual structuring (order & comments) I developed for REVALL. The .pot/.po format is not ideal for that, being flatter than .json or .xml, but probably close enough.
  • avoid having such contextual structuring accidentally deleted by updates.  (That is, don't use standard xgettext to automatically extract and update the .pot file, since this would throw away manual structuring)
  • support the "stays the same" annotations from translators.
  • be likely compatible with editors like poedit. (These would presumably ignore the use of trailing comments. The "po way" of doing things is to have preceding full-line comments, each beginning with "#".)

Although TDM engine code would not have to adhere to standard "gettext()" syntax/semantics when parsing a .po file, introducing our own customizations to .pot/.po might well conflict with standard po editors.

Anyway, given where we are now with REVALL, I don't think it's viable to use standard (or even customized) xgettext to extracts translatable content and generate a .pot file. Instead, a reasonable, poedit-compliant .pot can be one-time hand-created from REVALL. This would then be used with msgmerge (or more likely from within poedit) to generate language-specific (BUT still utf8) .po files.

Consider this 2-line fragment from REVALL:

    // Used after applying the holy water. Appears also in inventory:
    "#str_08610"    "Holy Water Arrow"

Here's what a corresponding .pot entry would look like, where "#." (hash-dot) here indicates a message TO the translators (as if extracted from the source material). Messages FROM the translator (e.g., "stays the same", would be on a preceding line beginning with "# " (hash-space).

FORMAT A - #str_id as comment

    #. Used after applying the holy water. Appears also in inventory:
    #. "#str_08610"
msgid "Holy Water Arrow"
msgstr ""    // Will be filled in to make language-specific .po

FORMAT B - #str_id as key

    #. Used after applying the holy water. Appears also in inventory:
    #. "Holy Water Arrow"
msgid "#str_08610"
msgstr ""    // Will be filled in to make language-specific .po

With Format A, there is some possibility of multiple meanings for the same msgid. To prevent key collisions, standard Gettext uses an optional msgctxt (message context) attribute. The combination of msgctxt + msgid forms a unique composite key. Probably TDM's Translate() could just look for the preceding #str_id comment.

I didn't show reference comments beginning with "#:", to indicate the file(s) and even line numbers where the pseudo-extraction was done from. These could be added with additional work.

Also, the REVALL special "//&" notation... I'd have to think further about that.

 

  • Like 1
Posted
On 9/18/2026 at 9:07 PM, Geep said:

be likely compatible with editors like poedit. (These would presumably ignore the use of trailing comments. The "po way" of doing things is to have preceding full-line comments, each beginning with "#".)

I agree that we need some annotations which are functionally comments but which are saved properly by all the processing. I wonder how well do the existing programs save these #. comments?

In general, we don't have to use the original GNU programs. As far as I understand, the gettext/PO is/was so popular, that there should be many programs that are compatible with it. And many of them are more modern and convenient. At least I hoped to find something more modern as a main recommendation...

Quote

Although TDM engine code would not have to adhere to standard "gettext()" syntax/semantics when parsing a .po file, introducing our own customizations to .pot/.po might well conflict with standard po editors.

No, it's better not to add any extensions.
On the other hand, the engine does not need to support the whole PO format. E.g. I saw there is some way to provide several translations depending on the context (e.g. singular/plural, or gender), but we can start with some core subset of the features, like a trivial msgid + msgstr replacement.

Quote

Anyway, given where we are now with REVALL, I don't think it's viable to use standard (or even customized) xgettext to extracts translatable content and generate a .pot file.

I'm 100% sure the extraction script for missions is on us to make.
As for the core strings, I suppose we can edit POT manually (just like we do now).

Quote

Instead, a reasonable, poedit-compliant .pot can be one-time hand-created from REVALL.

It shouldn't be a problem to convert the current format to POT once.
I'm pretty sure I can write a Python script for that relatively quickly.

Quote

This would then be used with msgmerge (or more likely from within poedit) to generate language-specific (BUT still utf8) .po files.

I hope this can be done with some more user-friendly program. Something like: we point it to POT file and to the directory with PO-s, and it allows us to navigate through strings, display several languages at once, enumerate missing strings, etc. Don't you think this convenience should exist in some programs?

Quote

FORMAT B - #str_id as key

It should be format B, that's the intended usage of PO. The program passes some string to translation function, which finds this exact string in language-specific PO, and substitutes it with the value. We just need to ensure that preceding comments are visible in most of the programs.

Also... can't we have "Holy Water Arrow" both in comment and in msgstr in POT? So that the comment stays in all the local PO-s forever, and so that msgstr becomes the "default value" that goes to English PO automatically.

With format B we can also naturally support full-text substitutions in the future for missions. It's exactly the way how gettext is used normally.

Quote

I didn't show reference comments beginning with "#:", to indicate the file(s) and even line numbers where the pseudo-extraction was done from. These could be added with additional work.

I am 100% sure this should be done by the automatic extraction script. I.e. when the script finds some string in .map file, it should write path to the file, line number, and preferably name of the entity and spawnarg. The same for .gui files.

We probably don't need this for the core strings. Because we have many of them, and the core files will be constantly changing. Most likely all those extra comments with far links will gradually start saying nonsense over time. It is more reliable to simply grep over *.gui, *.def, *.cpp, *.h (and even over the whole assets SVN) than to trust some old comments.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recent Status Updates

    • The Black Arrow

      I was playing Doom 3, and I learned how to edit maps text-by-text, this should help me a lot with finding secrets and locations I hope.
      That is, if I feel sneaky and greedy...Which I always do, can't get enough 100% a mission.
      · 0 replies
    • datiswous

      So on a regular basis I try to start building something in Darkradiant but very quickly I loose interest and give up.
      I tend to
      create a room, position an ai in it (or first ai, then room, probably better) put a light in it Put some stuff in it test the room in tdm Now I had this new idea:
      Start of with a gigantic room. To skip the importance of sealing for the time being and to think broader than one room. Then just use ground without wall, just to visualise the structure of the level.  Then just use prefab walls and other elements (arches, etc.). Just building area's that aren't enclosed. I can always close them at a later point. Maybe this is all very logical from a mappers perspective, but tdm is the first game where I have done any kind of real mapping and I always stop at the start. It just takes too long to make something exciting.
      I want to build something at some point, because over time I accumulated lots of ideas.
      · 15 replies
    • MayheM

      It would be nice to have a link to the forum thread of a mission in download section, rather than having to search for it manually, like on Thief Guild.
      · 1 reply
    • taffernicus

      Anaglypta , floral and damask wallpaper look great in older homes 
      It’s rare to see anyone using “shader not found” wallpaper in their house

       
      · 0 replies
    • Ansome

      Terribly difficult juggling map designing with work, but I'm still alive and chipping away at something very special. I'm actually making a collaboration of sorts with a friend, I make the map itself and he acts as my "Chief Scope Creep Consultant" that checks in every so often to make sure this project isn't getting out of hand. It's a good system!
      · 2 replies
×
×
  • Create New...