Browse Source
Adds bindings for i18n functions. Does not yet add support for loading mod-specific translations.pull/7643/head
5 changed files with 44 additions and 0 deletions
@ -0,0 +1,31 @@
|
||||
#include "lua/modules/i18n.hpp" |
||||
|
||||
#include <string_view> |
||||
|
||||
#include <fmt/format.h> |
||||
#include <sol/sol.hpp> |
||||
|
||||
#include "lua/metadoc.hpp" |
||||
#include "utils/language.h" |
||||
|
||||
namespace devilution { |
||||
|
||||
sol::table LuaI18nModule(sol::state_view &lua) |
||||
{ |
||||
sol::table table = lua.create_table(); |
||||
SetDocumented(table, "language_code", "()", |
||||
"Returns the current language code", GetLanguageCode); |
||||
SetDocumented(table, "translate", "(text: string)", |
||||
"Translates the given string", [](const char *key) { return LanguageTranslate(key); }); |
||||
SetDocumented(table, "plural_translate", "(singular: string, plural: string, count: integer)", |
||||
"Returns a singular or plural translation for the given keys and count", [](const char *singular, std::string_view plural, int count) { |
||||
return fmt::format(fmt::runtime(LanguagePluralTranslate(singular, plural, count)), count); |
||||
}); |
||||
SetDocumented(table, "particular_translate", "(context: string, text: string)", |
||||
"Returns the translation for the given context identifier and key.", LanguageParticularTranslate); |
||||
SetDocumented(table, "is_small_font_tall", "()", |
||||
"Whether the language's small font is tall (16px)", IsSmallFontTall); |
||||
return table; |
||||
} |
||||
|
||||
} // namespace devilution
|
||||
@ -0,0 +1,9 @@
|
||||
#pragma once |
||||
|
||||
#include <sol/sol.hpp> |
||||
|
||||
namespace devilution { |
||||
|
||||
sol::table LuaI18nModule(sol::state_view &lua); |
||||
|
||||
} // namespace devilution
|
||||
Loading…
Reference in new issue