Multilanguage System
System is currently not on sale. Will be available soon.

Add multi-language support to your game. With that addition, server-side locale files have been moved to the client side.
Game Messages
With moving locale_string.txt to the client-side, chat packets now consist of string index and variadic arguments. Below is a table that represents new functions for appending game messages to the player’s screen.
Configuration file locale_string.txt, as mentioned above, has been moved to the client side. Its structure is shown in the image below:

Messages are now collected inside an enum class, generated by a python script from the locale_string.txt.

The table below represents new functions to send chat packets to the player.
Old | New | Arguments |
ChatPacket | LocaleChatPacket | chat type: byte, string index: enum (uint), variadic arguments … |
BroadcastNotice | BroadcastLocaleNotice | chat type: byte, string index: enum (uint), variadic arguments … |
SendNoticeMap | SendLocaleMapNotice | map index: uint, chat type: byte, string index: enum (uint), variadic arguments … |
SendNotice | SendLocaleNotice | chat type: byte, string index: enum (uint), variadic arguments … |
Quests
Same as game messages, quest texts have also received a revamp and are now index-based. The image below shows a new way of writing quests.

Quests texts are now loaded from locale_quest.txt on the client-side instead of the usual translate.lua file.

Old | New | Arguments |
say | locale_say | string index: int, variadic arguments … |
say_title | locale_say_title | string index: int, variadic arguments … |
say_reward | locale_say_reward | string index: int, variadic arguments … |
set_title | locale_set_title | string index: int, variadic arguments … |
set_title2 | locale_set_title2 | quest title: string, string index: int, variadic arguments … |
send_letter | locale_send_letter | string index: int, variadic arguments … |
send_letter_ex | locale_send_letter2 | string index: int, icon type: string, icon string: string, variadic arguments … |
quest_button | locale_quest_button | string index: int, variadic arguments … |
quest_button_ex | locale_quest_button_ex | string index: int, icon type: string, icon string: string, variadic arguments … |
notice | locale_notice | string index: int, variadic arguments … |
notice_all | locale_notice_all | string index: int, variadic arguments … |
map_notice | locale_map_notice | string index: int, variadic arguments … |
say_in_map | locale_say_in_map | map index: int string index: int, variadic arguments … |
select | locale_select | variadic arguments … |
chat | locale_chat | quest string: locale_quest(int) |
Variadic arguments can also be locale strings of other types such as item names, monster names, etc.
locale_item(int) | Append the item’s name. |
locale_mob(int) | Append the monster’s name. |
locale_skill(int) | Append skill’s name. |
locale_quest(int) | Append a quest string. |
locale_string(int) | Append a locale string. |
Miscellaneous
- Settings
Language can be selected at System Settings. After applying the language, the client has to be restarted. The language list can be scrolled using the middle mouse wheel button.

Language preview can be turned off/on in the Game Settings window.


- NPC Names
Non-player names are now loaded from the client instead of using names from the server.
- Item Names
Item names in hyperlinks are now shown in the player’s selected language.
- Chat
The player’s selected language will be shown in chat next to the name.

- Messenger
The player’s selected language will also be shown in the private chat window.

- Player Texttail
Last but not least, the player’s selected language will also be shown next to the name.

- Monster Chat
So-called monster chat messages are now selected from the client side.
- Quiz
Quiz questions from the OX event are also loaded from the client-side. The image below represents its structure.

Languages: C++ / Python / Lua
Technical requirements:
- C++14-17
- Mouse Wheel Event
- fmt
Digital Good: 350€
- Multilanguage System
- Locale Files Conversion Script
- Game Messages Conversion Script
- Game Messages Enum Generation Script
- Quest Conversion Script
Discord Contact: Sonitex#1880
You must be logged in to post a comment.