OpenTTD Source 20241224-master-gf74b0cf984
strings.cpp File Reference

Handling of translated strings. More...

#include "stdafx.h"
#include "currency.h"
#include "station_base.h"
#include "town.h"
#include "waypoint_base.h"
#include "depot_base.h"
#include "industry.h"
#include "newgrf_text.h"
#include "fileio_func.h"
#include "signs_base.h"
#include "fontdetection.h"
#include "error.h"
#include "error_func.h"
#include "strings_func.h"
#include "rev.h"
#include "core/endian_func.hpp"
#include "timer/timer_game_calendar.h"
#include "vehicle_base.h"
#include "engine_base.h"
#include "language.h"
#include "townname_func.h"
#include "string_func.h"
#include "company_base.h"
#include "smallmap_gui.h"
#include "window_func.h"
#include "debug.h"
#include "game/game_text.hpp"
#include "network/network_content_gui.h"
#include "newgrf_engine.h"
#include "core/backup_type.hpp"
#include "gfx_layout.h"
#include <stack>
#include <charconv>
#include "table/strings.h"
#include "table/control_codes.h"
#include "3rdparty/fmt/std.h"
#include "strings_internal.h"
#include "safeguards.h"

Go to the source code of this file.

Data Structures

struct  LanguagePack
 
struct  LanguagePackDeleter
 
struct  LoadedLanguagePack
 
struct  UnitConversion
 Helper for unit conversion. More...
 
struct  Units
 Information about a specific unit system. More...
 
struct  UnitsLong
 Information about a specific unit system with a long variant. More...
 
class  LanguagePackGlyphSearcher
 Helper for searching through the language pack. More...
 

Functions

void SetDParam (size_t n, uint64_t v)
 Set a string parameter v at index n in the global string parameter array.
 
uint64_t GetDParam (size_t n)
 Get the current string parameter at index n from the global string parameter array.
 
void SetDParamMaxValue (size_t n, uint64_t max_value, uint min_count, FontSize size)
 Set DParam n to some number that is suitable for string size computations.
 
void SetDParamMaxDigits (size_t n, uint count, FontSize size)
 Set DParam n to some number that is suitable for string size computations.
 
void CopyInDParam (const std::span< const StringParameterData > backup)
 Copy the parameters from the backup into the global string parameter array.
 
void CopyOutDParam (std::vector< StringParameterData > &backup, size_t num)
 Copy num string parameters from the global string parameter array to the backup.
 
bool HaveDParamChanged (const std::span< const StringParameterData > backup)
 Checks whether the global string parameters have changed compared to the given backup.
 
static void StationGetSpecialString (StringBuilder &builder, StationFacility x)
 
static void GetSpecialTownNameString (StringBuilder &builder, int ind, uint32_t seed)
 
static void GetSpecialNameString (StringBuilder &builder, int ind, StringParameters &args)
 
static void FormatString (StringBuilder &builder, const char *str_arg, StringParameters &args, uint case_index, bool game_script, bool dry_run)
 Parse most format codes within a string and write the result to a buffer.
 
std::string_view GetListSeparator ()
 Get the list separator string for the current language.
 
const char * GetStringPtr (StringID string)
 
void GetStringWithArgs (StringBuilder &builder, StringID string, StringParameters &args, uint case_index, bool game_script)
 Get a parsed string with most special stringcodes replaced by the string parameters.
 
std::string GetString (StringID string)
 Resolve the given StringID into a std::string with all the associated DParam lookups and formatting.
 
void AppendStringInPlace (std::string &result, StringID string)
 Resolve the given StringID and append in place into an existing std::string with all the associated DParam lookups and formatting.
 
std::string GetStringWithArgs (StringID string, StringParameters &args)
 Get a parsed string with most special stringcodes replaced by the string parameters.
 
void SetDParamStr (size_t n, const char *str)
 This function is used to "bind" a C string to a OpenTTD dparam slot.
 
void SetDParamStr (size_t n, const std::string &str)
 This function is used to "bind" the C string of a std::string to a OpenTTD dparam slot.
 
void SetDParamStr (size_t n, std::string &&str)
 This function is used to "bind" the std::string to a OpenTTD dparam slot.
 
static const char * GetDecimalSeparator ()
 
static void FormatNumber (StringBuilder &builder, int64_t number, const char *separator)
 Format a number into a string.
 
static void FormatCommaNumber (StringBuilder &builder, int64_t number)
 
static void FormatNoCommaNumber (StringBuilder &builder, int64_t number)
 
static void FormatZerofillNumber (StringBuilder &builder, int64_t number, int count)
 
static void FormatHexNumber (StringBuilder &builder, uint64_t number)
 
static void FormatBytes (StringBuilder &builder, int64_t number)
 Format a given number as a number of bytes with the SI prefix.
 
static void FormatYmdString (StringBuilder &builder, TimerGameCalendar::Date date, uint case_index)
 
static void FormatMonthAndYear (StringBuilder &builder, TimerGameCalendar::Date date, uint case_index)
 
static void FormatTinyOrISODate (StringBuilder &builder, TimerGameCalendar::Date date, StringID str)
 
static void FormatGenericCurrency (StringBuilder &builder, const CurrencySpec *spec, Money number, bool compact)
 
static int DeterminePluralForm (int64_t count, int plural_form)
 Determine the "plural" index given a plural form and a number.
 
static const char * ParseStringChoice (const char *b, uint form, StringBuilder &builder)
 
static const Units GetVelocityUnits (VehicleType type)
 Get the correct velocity units depending on the vehicle type and whether we're using real-time units.
 
uint ConvertSpeedToDisplaySpeed (uint speed, VehicleType type)
 Convert the given (internal) speed to the display speed.
 
uint ConvertDisplaySpeedToSpeed (uint speed, VehicleType type)
 Convert the given display speed to the (internal) speed.
 
uint ConvertKmhishSpeedToDisplaySpeed (uint speed, VehicleType type)
 Convert the given km/h-ish speed to the display speed.
 
uint ConvertDisplaySpeedToKmhishSpeed (uint speed, VehicleType type)
 Convert the given display speed to the km/h-ish speed.
 
static std::span< const char *const > GetSurnameOptions ()
 
static const char * GetSurname (uint32_t seed)
 Get the surname of the president with the given seed.
 
static void GenAndCoName (StringBuilder &builder, uint32_t seed)
 
static void GenPresidentName (StringBuilder &builder, uint32_t seed)
 
bool ReadLanguagePack (const LanguageMetadata *lang)
 Read a particular language.
 
const char * GetCurrentLocale (const char *param)
 Determine the current charset based on the environment First check some default values, after this one we passed ourselves and if none exist return the value for $LANG.
 
const LanguageMetadataGetLanguage (uint8_t newgrflangid)
 Get the language with the given NewGRF language ID.
 
static bool GetLanguageFileHeader (const std::string &file, LanguagePackHeader *hdr)
 Reads the language file header and checks compatibility.
 
static void FillLanguageList (const std::string &path)
 Search for the languages in the given directory and add them to the _languages list.
 
void InitializeLanguagePacks ()
 Make a list of the available language packs.
 
const char * GetCurrentLanguageIsoCode ()
 Get the ISO language code of the currently loaded language.
 
void CheckForMissingGlyphs (bool base_font, MissingGlyphSearcher *searcher)
 Check whether the currently loaded language pack uses characters that the currently loaded font does not support.
 

Variables

std::string _config_language_file
 The file (name) stored in the configuration.
 
LanguageList _languages
 The actual list of language meta data.
 
const LanguageMetadata_current_language = nullptr
 The currently loaded language.
 
TextDirection _current_text_dir
 Text direction of the currently selected language.
 
std::unique_ptr< icu::Collator > _current_collator
 Collator for the language currently in use.
 
ArrayStringParameters< 20 > _global_string_params
 
static LoadedLanguagePack _langpack
 
static bool _scan_for_gender_data = false
 Are we scanning for the gender of the current string? (instead of formatting it)
 
static const Units _units_velocity_calendar []
 Unit conversions for velocity.
 
static const Units _units_velocity_realtime []
 Unit conversions for velocity.
 
static const Units _units_power []
 Unit conversions for power.
 
static const Units _units_power_to_weight []
 Unit conversions for power to weight.
 
static const UnitsLong _units_weight []
 Unit conversions for weight.
 
static const UnitsLong _units_volume []
 Unit conversions for volume.
 
static const Units _units_force []
 Unit conversions for force.
 
static const Units _units_height []
 Unit conversions for height.
 
static const Units _units_time_days_or_seconds []
 Unit conversions for time in calendar days or wallclock seconds.
 
static const Units _units_time_months_or_minutes []
 Unit conversions for time in calendar months or wallclock minutes.
 
static const Units _units_time_years_or_periods []
 Unit conversions for time in calendar years or economic periods.
 
static const Units _units_time_years_or_minutes []
 Unit conversions for time in calendar years or wallclock minutes.
 
static const char *const _silly_company_names []
 
static const char *const _surname_list []
 
static const char *const _silly_surname_list []
 
static const char _initial_name_letters []
 

Detailed Description

Handling of translated strings.

Definition in file strings.cpp.

Function Documentation

◆ AppendStringInPlace()

void AppendStringInPlace ( std::string &  result,
StringID  string 
)

Resolve the given StringID and append in place into an existing std::string with all the associated DParam lookups and formatting.

Parameters
resultThe std::string to place the translated string.
stringThe unique identifier of the translatable string.

Definition at line 345 of file strings.cpp.

References GetStringWithArgs().

Referenced by DrawRoadVehDetails(), BuildIndustryWindow::MakeCargoListString(), DepotWindow::OnRightClick(), and ShowErrorMessage().

◆ CheckForMissingGlyphs()

void CheckForMissingGlyphs ( bool  base_font,
MissingGlyphSearcher searcher 
)

Check whether the currently loaded language pack uses characters that the currently loaded font does not support.

If this is the case an error message will be shown in English. The error message will not be localized because that would mean it might use characters that are not in the font, which is the whole reason this check has been added.

Parameters
base_fontWhether to look at the base font as well.
searcherThe methods to use to search for strings to check. If nullptr the loaded language pack searcher is used.

Definition at line 2291 of file strings.cpp.

References _current_text_dir, MissingGlyphSearcher::FindMissingGlyphs(), FontCacheSubSetting::font, InitFontCache(), INVALID_STRING_ID, LoadStringWidthTable(), FontCacheSettings::medium, FontCacheSettings::mono, MissingGlyphSearcher::Monospace(), FontCacheSubSetting::os_handle, SetDParamStr(), SetFallbackFont(), ShowErrorMessage(), TD_LTR, Utf8Encode(), WL_ERROR, and WL_WARNING.

Referenced by HandleBootstrap(), LoadIntroGame(), TextfileWindow::LoadText(), GameOptionsWindow::OnClick(), and GameOptionsWindow::OnDropdownSelect().

◆ ConvertDisplaySpeedToKmhishSpeed()

uint ConvertDisplaySpeedToKmhishSpeed ( uint  speed,
VehicleType  type 
)

Convert the given display speed to the km/h-ish speed.

Parameters
speedthe speed to convert
Returns
the converted speed.

Definition at line 916 of file strings.cpp.

References Units::c, UnitConversion::FromDisplay(), and GetVelocityUnits().

Referenced by TimetableWindow::OnQueryTextFinished().

◆ ConvertDisplaySpeedToSpeed()

uint ConvertDisplaySpeedToSpeed ( uint  speed,
VehicleType  type 
)

Convert the given display speed to the (internal) speed.

Parameters
speedthe speed to convert
Returns
the converted speed.

Definition at line 896 of file strings.cpp.

References Units::c, UnitConversion::FromDisplay(), and GetVelocityUnits().

Referenced by OrdersWindow::OnQueryTextFinished().

◆ ConvertKmhishSpeedToDisplaySpeed()

uint ConvertKmhishSpeedToDisplaySpeed ( uint  speed,
VehicleType  type 
)

Convert the given km/h-ish speed to the display speed.

Parameters
speedthe speed to convert
Returns
the converted speed.

Definition at line 906 of file strings.cpp.

References Units::c, GetVelocityUnits(), and UnitConversion::ToDisplay().

Referenced by FormatString(), and TimetableWindow::OnClick().

◆ ConvertSpeedToDisplaySpeed()

uint ConvertSpeedToDisplaySpeed ( uint  speed,
VehicleType  type 
)

Convert the given (internal) speed to the display speed.

Parameters
speedthe speed to convert
Returns
the converted speed.

Definition at line 883 of file strings.cpp.

References Units::c, GetVelocityUnits(), and UnitConversion::ToDisplay().

Referenced by DrawOrderString(), OrdersWindow::OnClick(), and OrdersWindow::SetStringParameters().

◆ CopyInDParam()

void CopyInDParam ( const std::span< const StringParameterData >  backup)

Copy the parameters from the backup into the global string parameter array.

Parameters
backupThe backup to copy from.

Definition at line 159 of file strings.cpp.

Referenced by DrawNewsString(), ErrmsgWindow::DrawWidget(), TooltipsWindow::DrawWidget(), NewsWindow::DrawWidget(), ErrmsgWindow::SetStringParameters(), QueryWindow::SetStringParameters(), ErrmsgWindow::UpdateWidgetSize(), TooltipsWindow::UpdateWidgetSize(), and NewsWindow::UpdateWidgetSize().

◆ CopyOutDParam()

void CopyOutDParam ( std::vector< StringParameterData > &  backup,
size_t  num 
)

Copy num string parameters from the global string parameter array to the backup.

Parameters
backupThe backup to write to.
numNumber of string parameters to copy.

Definition at line 171 of file strings.cpp.

Referenced by ErrorMessageData::CopyOutDParams(), and NewsItem::NewsItem().

◆ DeterminePluralForm()

static int DeterminePluralForm ( int64_t  count,
int  plural_form 
)
static

Determine the "plural" index given a plural form and a number.

Parameters
countThe number to get the plural index of.
plural_formThe plural form we want an index for.
Returns
The plural index for the given form.

Definition at line 587 of file strings.cpp.

References abs().

Referenced by FormatString().

◆ FillLanguageList()

static void FillLanguageList ( const std::string &  path)
static

Search for the languages in the given directory and add them to the _languages list.

Parameters
paththe base directory to search in

Definition at line 2108 of file strings.cpp.

References _languages, Debug, LanguageMetadata::file, FS2OTTD(), GetLanguage(), GetLanguageFileHeader(), LanguagePackHeader::newgrflangid, and OTTD2FS().

Referenced by InitializeLanguagePacks().

◆ FormatBytes()

static void FormatBytes ( StringBuilder builder,
int64_t  number 
)
static

Format a given number as a number of bytes with the SI prefix.

Parameters
builderthe string builder to write to
numberthe number of bytes to write down

Definition at line 467 of file strings.cpp.

References lengthof, and NBSP.

Referenced by FormatString().

◆ FormatCommaNumber()

static void FormatCommaNumber ( StringBuilder builder,
int64_t  number 
)
static

Definition at line 440 of file strings.cpp.

◆ FormatGenericCurrency()

static void FormatGenericCurrency ( StringBuilder builder,
const CurrencySpec spec,
Money  number,
bool  compact 
)
static

Definition at line 520 of file strings.cpp.

◆ FormatHexNumber()

static void FormatHexNumber ( StringBuilder builder,
uint64_t  number 
)
static

Definition at line 457 of file strings.cpp.

◆ FormatMonthAndYear()

static void FormatMonthAndYear ( StringBuilder builder,
TimerGameCalendar::Date  date,
uint  case_index 
)
static

Definition at line 503 of file strings.cpp.

◆ FormatNoCommaNumber()

static void FormatNoCommaNumber ( StringBuilder builder,
int64_t  number 
)
static

Definition at line 447 of file strings.cpp.

◆ FormatNumber()

static void FormatNumber ( StringBuilder builder,
int64_t  number,
const char *  separator 
)
static

Format a number into a string.

Parameters
builderthe string builder to write to
numberthe number to write down
separatorthe thousands-separator to use

Definition at line 412 of file strings.cpp.

◆ FormatString()

static void FormatString ( StringBuilder builder,
const char *  str_arg,
StringParameters args,
uint  case_index,
bool  game_script,
bool  dry_run 
)
static

Parse most format codes within a string and write the result to a buffer.

Parameters
builderThe string builder to write the final string to.
str_argThe original string with format codes.
argsPointer to extra arguments used by various string codes.
dry_runTrue when the args' type data is not yet initialized.

Definition at line 928 of file strings.cpp.

References _scan_for_gender_data, _settings_game, _sorted_cargo_specs, _units_force, _units_height, _units_power, _units_power_to_weight, _units_time_days_or_seconds, _units_time_months_or_minutes, _units_time_years_or_minutes, _units_time_years_or_periods, _units_volume, _units_weight, StringParameters::AdvanceOffset(), UnitsLong::c, CALLBACK_FAILED, CBID_VEHICLE_NAME, CBM_VEHICLE_NAME, ConvertKmhishSpeedToDisplaySpeed(), CreateTextRefStackBackup(), Debug, DEFAULT_GROUP, DeterminePluralForm(), FormatBytes(), FormatString(), GB(), CargoSpec::Get(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_depot_pool >::Get(), CargoSpec::GetArraySize(), GetCurrency(), StringParameters::GetDataLeft(), GetGRFStringID(), SpecializedStation< Station, false >::GetIfValid(), SpecializedStation< Waypoint, true >::GetIfValid(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_sign_pool >::GetIfValid(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_industry_pool >::GetIfValid(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::GetIfValid(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::GetIfValid(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_group_pool >::GetIfValid(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::GetIfValid(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_town_pool >::GetIfValid(), GetIndustrySpec(), GetListSeparator(), StringParameters::GetNextParameter(), StringParameters::GetNextParameterString(), StringParameters::GetOffset(), StringParameters::GetRemainingParameters(), GetStringTab(), GetStringWithArgs(), StringParameters::GetTypeAtOffset(), GetVehicleCallback(), GetVelocityUnits(), Vehicle::group_id, HasBit(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, IsInsideMM(), IsValidCargoID(), Company::IsValidHumanID(), lengthof, GameSettings::locale, MakeStringID(), BaseConsist::name, BaseStation::name, CompanyProperties::name, Group::name, IndustrySpec::name, Town::name, CompanyProperties::name_1, CompanyProperties::name_2, Group::number, PowerOfTen(), CompanyProperties::president_name, CompanyProperties::president_name_1, CompanyProperties::president_name_2, CargoSpec::quantifier, RemapNewGRFStringControlCode(), RestoreTextRefStackBackup(), SCC_NEWGRF_FIRST, SCC_NEWGRF_PRINT_WORD_STRING_ID, SCC_NEWGRF_STRINL, StringParameters::SetOffset(), StartTextRefStackUsage(), IndustrySpec::station_name, StopTextRefStackUsage(), BaseStation::string_id, TAB_SIZE_GAMESCRIPT, TEXT_TAB_GAMESCRIPT_START, UnitConversion::ToDisplay(), BaseStation::town, Industry::town, Depot::town_cn, Waypoint::town_cn, Industry::type, BaseVehicle::type, Vehicle::unitnumber, LocaleSettings::units_force, LocaleSettings::units_height, LocaleSettings::units_power, CargoSpec::units_volume, LocaleSettings::units_volume, LocaleSettings::units_weight, UsingNewGRFTextStack(), TimerGameEconomy::UsingWallclockUnits(), Utf8Decode(), StringBuilder::Utf8Encode(), Utf8Encode(), VEH_AIRCRAFT, VEH_ROAD, VEH_SHIP, and VEH_TRAIN.

Referenced by FormatString(), and GetStringWithArgs().

◆ FormatTinyOrISODate()

static void FormatTinyOrISODate ( StringBuilder builder,
TimerGameCalendar::Date  date,
StringID  str 
)
static

Definition at line 511 of file strings.cpp.

◆ FormatYmdString()

static void FormatYmdString ( StringBuilder builder,
TimerGameCalendar::Date  date,
uint  case_index 
)
static

Definition at line 495 of file strings.cpp.

◆ FormatZerofillNumber()

static void FormatZerofillNumber ( StringBuilder builder,
int64_t  number,
int  count 
)
static

Definition at line 452 of file strings.cpp.

◆ GenAndCoName()

static void GenAndCoName ( StringBuilder builder,
uint32_t  seed 
)
static

Definition at line 1855 of file strings.cpp.

◆ GenPresidentName()

static void GenPresidentName ( StringBuilder builder,
uint32_t  seed 
)
static

Definition at line 1861 of file strings.cpp.

◆ GetCurrentLanguageIsoCode()

const char * GetCurrentLanguageIsoCode ( )

Get the ISO language code of the currently loaded language.

Returns
the ISO code.

Definition at line 2183 of file strings.cpp.

Referenced by GameOptionsWindow::DrawWidget(), GetTextfile(), and GameOptionsWindow::OnResize().

◆ GetCurrentLocale()

const char * GetCurrentLocale ( const char *  param)

Determine the current charset based on the environment First check some default values, after this one we passed ourselves and if none exist return the value for $LANG.

Parameters
paramenvironment variable to check conditionally if default ones are not set. Pass nullptr if you don't want additional checks.
Returns
return string containing current charset, or nullptr if not-determinable

Definition at line 2046 of file strings.cpp.

Referenced by InitializeLanguagePacks().

◆ GetDecimalSeparator()

static const char * GetDecimalSeparator ( )
static

Definition at line 399 of file strings.cpp.

◆ GetDParam()

uint64_t GetDParam ( size_t  n)

Get the current string parameter at index n from the global string parameter array.

Parameters
nIndex of the string parameter.
Returns
Value of the requested string parameter.

Definition at line 114 of file strings.cpp.

Referenced by ErrorMessageData::CopyOutDParams().

◆ GetLanguage()

const LanguageMetadata * GetLanguage ( uint8_t  newgrflangid)

Get the language with the given NewGRF language ID.

Parameters
newgrflangidNewGRF languages ID to check.
Returns
The language's metadata, or nullptr if it is not known.

Definition at line 2072 of file strings.cpp.

References _languages.

Referenced by FillLanguageList(), and GlobalVarChangeInfo().

◆ GetLanguageFileHeader()

static bool GetLanguageFileHeader ( const std::string &  file,
LanguagePackHeader hdr 
)
static

Reads the language file header and checks compatibility.

Parameters
filethe file to read
hdrthe place to write the header information to
Returns
true if and only if the language file is of a compatible version

Definition at line 2087 of file strings.cpp.

References LanguagePackHeader::IsValid(), LanguagePackHeader::missing, FileHandle::Open(), and LanguagePackHeader::winlangid.

Referenced by FillLanguageList().

◆ GetListSeparator()

std::string_view GetListSeparator ( )

Get the list separator string for the current language.

Returns
string containing list separator to use.

Definition at line 229 of file strings.cpp.

References LoadedLanguagePack::list_separator.

Referenced by BuildCargoAcceptanceString(), NetworkContentListWindow::DrawDetails(), DrawRoadVehDetails(), and FormatString().

◆ GetSpecialNameString()

static void GetSpecialNameString ( StringBuilder builder,
int  ind,
StringParameters args 
)
static

Definition at line 1876 of file strings.cpp.

◆ GetSpecialTownNameString()

static void GetSpecialTownNameString ( StringBuilder builder,
int  ind,
uint32_t  seed 
)
static

Definition at line 1765 of file strings.cpp.

◆ GetString()

std::string GetString ( StringID  string)

Resolve the given StringID into a std::string with all the associated DParam lookups and formatting.

Parameters
stringThe unique identifier of the translatable string.
Returns
The std::string of the translated string.

Definition at line 333 of file strings.cpp.

References GetStringWithArgs().

Referenced by StringFilter::AddLine(), Textbuf::Assign(), Subsidy::AwardTo(), BuildCargoAcceptanceString(), BuildGuiGroupList(), CargoSpecNameSorter(), ClassTagNameFilter(), CmdFoundTown(), CmdGiveMoney(), CompanyNewsInformation::CompanyNewsInformation(), NewGRFInspectWindow::DrawMainPanelWidget(), DrawNewsString(), DrawRoadVehDetails(), DrawString(), DrawStringMultiLine(), EngineNameSorter(), ErrorUnknownCallbackResult(), BuildVehicleWindow::FilterByText(), FiosGetFileList(), GenerateCompanyName(), GenerateDefaultSaveName(), GeneratePresidentName(), GetCargoSuffix(), BuildHouseWindow::GetHouseInformation(), BuildHouseWindow::GetHouseYear(), GetKeyboardLayout(), BaseSet< T, Tnum_files, Tsearch_in_tars >::GetListLabel(), GetNewGRFAdditionalText(), GetStringBoundingBox(), GetStringHeight(), GetStringLineCount(), IndustryTypeNameSorter(), BuildIndustryWindow::MakeCargoListString(), NetworkHandlePauseChange(), NetworkServerSendChat(), LandInfoWindow::OnInit(), SignListWindow::OnInit(), SelectGameWindow::OnResize(), openttd_main(), ReadLanguagePack(), ServerNetworkGameSocketHandler::Receive_CLIENT_ERROR(), ClientNetworkGameSocketHandler::Receive_SERVER_CHAT(), StoryBookWindow::RefreshSelectedPage(), SaveFileToDisk(), SaveHighScoreValue(), SaveHighScoreValueNetwork(), SaveOrLoad(), Script_CreateDummy(), ServerNetworkAdminSocketHandler::SendCompanyInfo(), ServerNetworkAdminSocketHandler::SendCompanyUpdate(), ServerNetworkAdminSocketHandler::SendError(), ServerNetworkGameSocketHandler::SendError(), ShowErrorMessage(), ShowNewGrfVehicleError(), TownActionRoadRebuild(), TranslateGRFStrings(), TypeTagNameFilter(), ScanProgressWindow::UpdateNewGRFScanStatus(), ViewportSign::UpdatePosition(), and VehicleNameSorter().

◆ GetStringPtr()

const char * GetStringPtr ( StringID  string)

Definition at line 234 of file strings.cpp.

◆ GetStringWithArgs() [1/2]

void GetStringWithArgs ( StringBuilder builder,
StringID  string,
StringParameters args,
uint  case_index,
bool  game_script 
)

Get a parsed string with most special stringcodes replaced by the string parameters.

Parameters
builderThe builder of the string.
stringThe ID of the string to parse.
argsArguments for the string.
case_indexThe "case index". This will only be set when FormatString wants to print the string in a different case.
game_scriptThe string is coming directly from a game script.

Definition at line 257 of file strings.cpp.

References Debug, FormatString(), GetGameStringPtr(), GetGRFStringPtr(), StringParameters::GetNextParameter(), GetStringIndex(), GetStringTab(), GetStringWithArgs(), LoadedLanguagePack::langtab_num, TEXT_TAB_GAMESCRIPT_START, and TEXT_TAB_NEWGRF_START.

Referenced by AppendStringInPlace(), FormatString(), GetString(), GetStringWithArgs(), GetStringWithArgs(), and GetTownName().

◆ GetStringWithArgs() [2/2]

std::string GetStringWithArgs ( StringID  string,
StringParameters args 
)

Get a parsed string with most special stringcodes replaced by the string parameters.

Parameters
stringThe ID of the string to parse.
argsArguments for the string.
Returns
The parsed string.

Definition at line 358 of file strings.cpp.

References GetStringWithArgs().

◆ GetSurname()

static const char * GetSurname ( uint32_t  seed)
static

Get the surname of the president with the given seed.

Parameters
seedThe seed the surname was generated from.
Returns
The surname.

Definition at line 1849 of file strings.cpp.

References GB().

◆ GetSurnameOptions()

static std::span< const char *const > GetSurnameOptions ( )
static

Definition at line 1838 of file strings.cpp.

◆ GetVelocityUnits()

static const Units GetVelocityUnits ( VehicleType  type)
static

Get the correct velocity units depending on the vehicle type and whether we're using real-time units.

Parameters
typeVehicleType to convert velocity for.
Returns
The Units for the proper vehicle and time mode.

Definition at line 866 of file strings.cpp.

References _settings_game, _units_velocity_calendar, _units_velocity_realtime, lengthof, GameSettings::locale, LocaleSettings::units_velocity, LocaleSettings::units_velocity_nautical, TimerGameEconomy::UsingWallclockUnits(), VEH_AIRCRAFT, and VEH_SHIP.

Referenced by ConvertDisplaySpeedToKmhishSpeed(), ConvertDisplaySpeedToSpeed(), ConvertKmhishSpeedToDisplaySpeed(), ConvertSpeedToDisplaySpeed(), and FormatString().

◆ HaveDParamChanged()

bool HaveDParamChanged ( const std::span< const StringParameterData >  backup)

Checks whether the global string parameters have changed compared to the given backup.

Parameters
backupThe backup to check against.
Returns
True when the parameters have changed, otherwise false.

Definition at line 184 of file strings.cpp.

◆ InitializeLanguagePacks()

void InitializeLanguagePacks ( )

Make a list of the available language packs.

Put the data in _languages list.

< Matching the language in the configuration file or the current locale

< Using pt_PT for pt_BR locale when pt_BR is not available

< Fallback when no locale-matching language has been found

Definition at line 2136 of file strings.cpp.

References _config_language_file, _languages, LanguageMetadata::file, FillLanguageList(), FS2OTTD(), GetCurrentLocale(), LANG_DIR, and ReadLanguagePack().

Referenced by openttd_main().

◆ ParseStringChoice()

static const char * ParseStringChoice ( const char *  b,
uint  form,
StringBuilder builder 
)
static

Definition at line 708 of file strings.cpp.

◆ ReadLanguagePack()

◆ SetDParam()

void SetDParam ( size_t  n,
uint64_t  v 
)

Set a string parameter v at index n in the global string parameter array.

Parameters
nIndex of the string parameter.
vValue of the string parameter.

Definition at line 104 of file strings.cpp.

Referenced by AdvertiseIndustryOpening(), AgeVehicle(), AircraftEntersTerminal(), AircraftHandleDestTooFar(), Subsidy::AwardTo(), BuildCargoAcceptanceString(), StoryBookWindow::BuildDropDownList(), GameOptionsWindow::BuildDropDownList(), BuildGuiGroupList(), BuildReplacementVehicle(), CalcRaildirsDrawstyle(), CcBuildIndustry(), ChangeIndustryProduction(), CheckAllowRemoveRoad(), CheckCompanyHasMoney(), ClientNetworkGameSocketHandler::CheckConnection(), CheckEngines(), CheckforTownRating(), CheckIfAuthorityAllowsNewStation(), CheckIndustries(), CheckOrders(), CheckTownRoadTypes(), CheckTrainCollision(), CheckTrainsLengths(), ClearTile_Station(), ClearTile_Town(), CmdBuildAirport(), CmdBuildBridge(), CmdCompanyCtrl(), CmdDecreaseLoan(), CmdFoundTown(), CmdGiveMoney(), CmdIncreaseLoan(), CmdIndustrySetProduction(), CompanyCheckBankrupt(), CompanyNewsInformation::CompanyNewsInformation(), CrashAirplane(), Disaster_CoalMine_Init(), DisasterTick_Aircraft(), DisasterTick_Big_Ufo(), DisasterTick_Zeppeliner(), StationViewWindow::DrawAcceptedCargo(), DrawAircraftDetails(), DrawAircraftPurchaseInfo(), TimetableWindow::DrawArrivalDeparturePanel(), StationViewWindow::DrawCargoRatings(), NetworkClientListWindow::DrawCompany(), CompanyInfrastructureWindow::DrawCountLine(), NetworkContentListWindow::DrawDetails(), DrawEngineList(), StationViewWindow::DrawEntries(), BaseGraphWindow::DrawGraph(), VehicleGroupWindow::DrawGroupInfo(), IndustryViewWindow::DrawInfo(), NewGRFInspectWindow::DrawMainPanelWidget(), DrawOrderString(), DrawPrice(), TownAuthorityWindow::DrawRatings(), DrawRoadVehDetails(), NetworkGameWindow::DrawServerLine(), SettingEntry::DrawSetting(), DrawShipDetails(), DrawSmallOrderList(), DrawStationCoverageAreaText(), TimetableWindow::DrawSummaryPanel(), TimetableWindow::DrawTimetablePanel(), SmallMapWindow::DrawTowns(), DrawTrainDetails(), DepotWindow::DrawVehicleInDepot(), BaseVehicleListWindow::DrawVehicleListItems(), DrawVehiclePurchaseInfo(), DrawVehicleRefitWindow(), ReplaceVehicleWindow::DrawWidget(), CheatWindow::DrawWidget(), SelectCompanyLiveryWindow::DrawWidget(), CompanyInfrastructureWindow::DrawWidget(), CompanyWindow::DrawWidget(), BuyCompanyWindow::DrawWidget(), EnginePreviewWindow::DrawWidget(), SaveLoadWindow::DrawWidget(), FramerateWindow::DrawWidget(), FrametimeGraphWindow::DrawWidget(), GSConfigWindow::DrawWidget(), GenerateProgressWindow::DrawWidget(), GraphLegendWindow::DrawWidget(), PaymentRatesGraphWindow::DrawWidget(), PerformanceRatingDetailWindow::DrawWidget(), IndustryProductionGraphWindow::DrawWidget(), VehicleGroupWindow::DrawWidget(), BuildIndustryWindow::DrawWidget(), SelectGameWindow::DrawWidget(), PerformanceLeagueWindow::DrawWidget(), ScriptLeagueWindow::DrawWidget(), MusicTrackSelectionWindow::DrawWidget(), MusicWindow::DrawWidget(), BaseNetworkContentDownloadStatusWindow::DrawWidget(), NetworkJoinStatusWindow::DrawWidget(), SpriteAlignerWindow::DrawWidget(), NewGRFParametersWindow::DrawWidget(), ScanProgressWindow::DrawWidget(), MessageHistoryWindow::DrawWidget(), ScriptListWindow::DrawWidget(), ScriptSettingsWindow::DrawWidget(), GameSettingsWindow::DrawWidget(), SignListWindow::DrawWidget(), SmallMapWindow::DrawWidget(), CompanyStationsWindow::DrawWidget(), SelectStationWindow< T >::DrawWidget(), StatusBarWindow::DrawWidget(), StoryBookWindow::DrawWidget(), SubsidyListWindow::DrawWidget(), TownAuthorityWindow::DrawWidget(), TownViewWindow::DrawWidget(), TownDirectoryWindow::DrawWidget(), VehicleDetailsWindow::DrawWidget(), VehicleViewWindow::DrawWidget(), DrawYearColumn(), EngineNameSorter(), ErrorUnknownCallbackResult(), BuildVehicleWindow::FilterByText(), FloodVehicle(), GenerateCompanyName(), GenerateDefaultSaveName(), GeneratePresidentName(), BuildBridgeWindow::GetBridgeSelectString(), RefitWindow::GetCapacityString(), StationViewWindow::GetEntryString(), BuildHouseWindow::GetHouseInformation(), BuildHouseWindow::GetHouseYear(), IndustryDirectoryWindow::GetIndustryString(), BaseSet< T, Tnum_files, Tsearch_in_tars >::GetListLabel(), GetRailTypeDropDownList(), BaseGraphWindow::GetYLabelWidth(), GRFLoadConfig(), Vehicle::HandlePathfindingResult(), IndustryProductionCallback(), CommandHelperBase::InternalExecuteProcessResult(), LoadTownData(), BuildIndustryWindow::MakeCargoListString(), MakeScreenshotWithConfirm(), NetworkHandlePauseChange(), NetworkServerSendChat(), NewVehicleAvailable(), BuildVehicleWindow::OnClick(), CheatWindow::OnClick(), SelectCompanyManagerFaceWindow::OnClick(), CompanyWindow::OnClick(), DepotWindow::OnClick(), GSConfigWindow::OnClick(), GenerateLandscapeWindow::OnClick(), CreateScenarioWindow::OnClick(), IndustryViewWindow::OnClick(), NetworkStartServerWindow::OnClick(), NewGRFParametersWindow::OnClick(), OrdersWindow::OnClick(), ScriptSettingsWindow::OnClick(), GameSettingsWindow::OnClick(), CustomCurrencyWindow::OnClick(), StationViewWindow::OnClick(), TimetableWindow::OnClick(), TownViewWindow::OnClick(), VehicleViewWindow::OnClick(), WaypointWindow::OnClick(), GenerateLandscapeWindow::OnDropdownSelect(), NetworkClientListWindow::OnDropdownSelect(), SelectCompanyManagerFaceWindow::OnInit(), LandInfoWindow::OnInit(), SmallMapWindow::OnInit(), BuildAirportWindow::OnPaint(), EndGameWindow::OnPaint(), HighScoreWindow::OnPaint(), GameSettingsWindow::OnPaint(), BuildIndustryWindow::OnPlaceObject(), CompanyWindow::OnResize(), SelectGameWindow::OnResize(), DepotWindow::OnRightClick(), ReplaceVehicleWindow::OnTooltip(), IndustryCargoesWindow::OnTooltip(), LinkGraphLegendWindow::OnTooltip(), RealMakeScreenshot(), ClientNetworkGameSocketHandler::Receive_SERVER_CHAT(), StoryBookWindow::RefreshSelectedPage(), ReportNewsProductionChangeIndustry(), RoadVehArrivesAt(), SaveHighScoreValue(), SaveHighScoreValueNetwork(), ServerNetworkAdminSocketHandler::SendCompanyInfo(), ServerNetworkAdminSocketHandler::SendCompanyUpdate(), ServiceIntervalSettingsValueText(), SetDParamMaxDigits(), SetDParamsForOwnedBy(), SelectCompanyManagerFaceWindow::SetFaceStringParameters(), NIHelper::SetObjectAtStringParameters(), NIHelper::SetSimpleStringParameters(), AIConfigWindow::SetStringParameters(), BuildAirportWindow::SetStringParameters(), ReplaceVehicleWindow::SetStringParameters(), BuildVehicleWindow::SetStringParameters(), CompanyFinancesWindow::SetStringParameters(), SelectCompanyLiveryWindow::SetStringParameters(), CompanyInfrastructureWindow::SetStringParameters(), CompanyWindow::SetStringParameters(), BuyCompanyWindow::SetStringParameters(), SetDateWindow::SetStringParameters(), DepotWindow::SetStringParameters(), FramerateWindow::SetStringParameters(), FrametimeGraphWindow::SetStringParameters(), GenerateLandscapeWindow::SetStringParameters(), CreateScenarioWindow::SetStringParameters(), GoalListWindow::SetStringParameters(), GoalQuestionWindow::SetStringParameters(), IndustryProductionGraphWindow::SetStringParameters(), VehicleGroupWindow::SetStringParameters(), BuildIndustryWindow::SetStringParameters(), IndustryViewWindow::SetStringParameters(), IndustryDirectoryWindow::SetStringParameters(), IndustryCargoesWindow::SetStringParameters(), QueryStringWindow::SetStringParameters(), MusicTrackSelectionWindow::SetStringParameters(), ContentTextfileWindow::SetStringParameters(), NetworkStartServerWindow::SetStringParameters(), NetworkClientListWindow::SetStringParameters(), SpriteAlignerWindow::SetStringParameters(), NewGRFParametersWindow::SetStringParameters(), NewGRFTextfileWindow::SetStringParameters(), NewGRFWindow::SetStringParameters(), NewsWindow::SetStringParameters(), BuildObjectWindow::SetStringParameters(), OrdersWindow::SetStringParameters(), OskWindow::SetStringParameters(), BuildRailToolbarWindow::SetStringParameters(), BuildSignalWindow::SetStringParameters(), BuildRoadToolbarWindow::SetStringParameters(), ScriptListWindow::SetStringParameters(), ScriptSettingsWindow::SetStringParameters(), ScriptTextfileWindow::SetStringParameters(), ScriptDebugWindow::SetStringParameters(), BaseSetTextfileWindow::SetStringParameters(), GameOptionsWindow::SetStringParameters(), GameSettingsWindow::SetStringParameters(), CustomCurrencyWindow::SetStringParameters(), SignListWindow::SetStringParameters(), SignWindow::SetStringParameters(), SmallMapWindow::SetStringParameters(), CompanyStationsWindow::SetStringParameters(), StationViewWindow::SetStringParameters(), StoryBookWindow::SetStringParameters(), TimetableWindow::SetStringParameters(), ScenarioEditorToolbarWindow::SetStringParameters(), TownAuthorityWindow::SetStringParameters(), TownViewWindow::SetStringParameters(), TownDirectoryWindow::SetStringParameters(), RefitWindow::SetStringParameters(), VehicleListWindow::SetStringParameters(), VehicleDetailsWindow::SetStringParameters(), VehicleViewWindow::SetStringParameters(), ExtraViewportWindow::SetStringParameters(), WaypointWindow::SetStringParameters(), SetTimetableParams(), SettingsValueAbsolute(), SettingsValueVelocityUnit(), SetupSubsidyDecodeParam(), IntSettingDesc::SetValueDParams(), ShipArrivesAt(), ShowCostOrIncomeAnimation(), SetDateWindow::ShowDateDropDown(), ShowEstimatedCostOrIncome(), ShowFeederIncomeAnimation(), ShowFillingPercent(), ShowNewGRFError(), ShowNewGrfVehicleError(), ShowRefitOptionsList(), ShowRejectOrAcceptNews(), ToolbarScenDatePanel(), TownActionBuyRights(), TownActionRoadRebuild(), TrainDetailsCapacityTab(), TrainDetailsCargoTab(), TrainDetailsInfoTab(), TrainEnterStation(), UpdateFillingPercent(), SettingEntry::UpdateFilterState(), Sign::UpdateVirtCoord(), Town::UpdateVirtCoord(), Station::UpdateVirtCoord(), Waypoint::UpdateVirtCoord(), ReplaceVehicleWindow::UpdateWidgetSize(), CheatWindow::UpdateWidgetSize(), SelectCompanyLiveryWindow::UpdateWidgetSize(), CompanyWindow::UpdateWidgetSize(), BuyCompanyWindow::UpdateWidgetSize(), DepotWindow::UpdateWidgetSize(), EnginePreviewWindow::UpdateWidgetSize(), FramerateWindow::UpdateWidgetSize(), FrametimeGraphWindow::UpdateWidgetSize(), GenerateLandscapeWindow::UpdateWidgetSize(), CreateScenarioWindow::UpdateWidgetSize(), BaseGraphWindow::UpdateWidgetSize(), PaymentRatesGraphWindow::UpdateWidgetSize(), PerformanceRatingDetailWindow::UpdateWidgetSize(), IndustryProductionGraphWindow::UpdateWidgetSize(), PerformanceLeagueWindow::UpdateWidgetSize(), ScriptLeagueWindow::UpdateWidgetSize(), MusicTrackSelectionWindow::UpdateWidgetSize(), MessageHistoryWindow::UpdateWidgetSize(), GameSettingsWindow::UpdateWidgetSize(), CustomCurrencyWindow::UpdateWidgetSize(), SelectStationWindow< T >::UpdateWidgetSize(), StatusBarWindow::UpdateWidgetSize(), ScenarioEditorToolbarWindow::UpdateWidgetSize(), TownAuthorityWindow::UpdateWidgetSize(), TownDirectoryWindow::UpdateWidgetSize(), VehicleDetailsWindow::UpdateWidgetSize(), VehicleEnterDepot(), VehicleNameSorter(), VpSelectTilesWithMethod(), and VpSetPresizeRange().

◆ SetDParamMaxDigits()

void SetDParamMaxDigits ( size_t  n,
uint  count,
FontSize  size 
)

◆ SetDParamMaxValue()

◆ SetDParamStr() [1/3]

void SetDParamStr ( size_t  n,
const char *  str 
)

This function is used to "bind" a C string to a OpenTTD dparam slot.

Parameters
nslot of the string
strstring to bind

Definition at line 371 of file strings.cpp.

Referenced by Subsidy::AwardTo(), GameOptionsWindow::BuildDropDownList(), CheckForMissingGlyphs(), CmdCompanyCtrl(), CmdCustomNewsItem(), CmdFoundTown(), CmdIndustrySetProduction(), CompanyCheckBankrupt(), NetworkClientListWindow::DrawCompany(), NetworkContentListWindow::DrawDetails(), IndustryViewWindow::DrawInfo(), GoalListWindow::DrawListColumn(), AIConfigWindow::DrawWidget(), FramerateWindow::DrawWidget(), GSConfigWindow::DrawWidget(), GoalQuestionWindow::DrawWidget(), ScriptLeagueWindow::DrawWidget(), LandInfoWindow::DrawWidget(), MusicTrackSelectionWindow::DrawWidget(), MusicWindow::DrawWidget(), BaseNetworkContentDownloadStatusWindow::DrawWidget(), SpriteAlignerWindow::DrawWidget(), NewGRFParametersWindow::DrawWidget(), NewsWindow::DrawWidget(), ScriptListWindow::DrawWidget(), ScriptSettingsWindow::DrawWidget(), GameOptionsWindow::DrawWidget(), StoryBookWindow::DrawWidget(), TownViewWindow::DrawWidget(), ErrorUnknownCallbackResult(), FiosGetFileList(), GenerateCompanyName(), TownViewWindow::GetDesiredInfoHeight(), StoryBookWindow::GetHeadHeight(), IndustryDirectoryWindow::GetIndustryString(), BaseSet< T, Tnum_files, Tsearch_in_tars >::GetListLabel(), StoryBookWindow::GetPageElementHeight(), GetSavegameFormat(), GetSaveLoadErrorMessage(), GraphicsSetLoadConfig(), GRFLoadConfig(), IndustryProductionCallback(), LoadTownData(), BuildIndustryWindow::MakeCargoListString(), NetworkDrawChatMessage(), NetworkGameWindow::OnClick(), NetworkStartServerWindow::OnClick(), NetworkClientListWindow::OnClick(), CustomCurrencyWindow::OnClick(), TextfileWindow::OnClick(), NetworkClientListWindow::OnDropdownSelect(), LandInfoWindow::OnInit(), IConsoleWindow::OnPaint(), GoalListWindow::OnPaint(), HighScoreWindow::OnPaint(), NewsWindow::OnResize(), GameOptionsWindow::OnResize(), DepotWindow::OnRightClick(), openttd_main(), RealMakeScreenshot(), ClientNetworkGameSocketHandler::Receive_SERVER_ERROR(), FrametimeGraphWindow::SetStringParameters(), GenerateLandscapeWindow::SetStringParameters(), GameManualTextfileWindow::SetStringParameters(), ScriptLeagueWindow::SetStringParameters(), AboutWindow::SetStringParameters(), MusicTrackSelectionWindow::SetStringParameters(), NetworkChatWindow::SetStringParameters(), ContentTextfileWindow::SetStringParameters(), NetworkClientListWindow::SetStringParameters(), NetworkAskRelayWindow::SetStringParameters(), SpriteAlignerWindow::SetStringParameters(), NewGRFTextfileWindow::SetStringParameters(), NewGRFWindow::SetStringParameters(), ScriptTextfileWindow::SetStringParameters(), ScriptDebugWindow::SetStringParameters(), BaseSetTextfileWindow::SetStringParameters(), GameOptionsWindow::SetStringParameters(), CustomCurrencyWindow::SetStringParameters(), StoryBookWindow::SetStringParameters(), ShowNewGRFError(), ShowNewGrfVehicleError(), TownActionBuyRights(), TownActionRoadRebuild(), FramerateWindow::UpdateWidgetSize(), GoalQuestionWindow::UpdateWidgetSize(), ScriptLeagueWindow::UpdateWidgetSize(), LandInfoWindow::UpdateWidgetSize(), MusicTrackSelectionWindow::UpdateWidgetSize(), MusicWindow::UpdateWidgetSize(), NetworkClientListWindow::UpdateWidgetSize(), SpriteAlignerWindow::UpdateWidgetSize(), NewGRFWindow::UpdateWidgetSize(), StoryBookWindow::UpdateWidgetSize(), and WarnCorruptSprite().

◆ SetDParamStr() [2/3]

void SetDParamStr ( size_t  n,
const std::string &  str 
)

This function is used to "bind" the C string of a std::string to a OpenTTD dparam slot.

The caller has to ensure that the std::string reference remains valid while the string is shown.

Parameters
nslot of the string
strstring to bind

Definition at line 382 of file strings.cpp.

◆ SetDParamStr() [3/3]

void SetDParamStr ( size_t  n,
std::string &&  str 
)

This function is used to "bind" the std::string to a OpenTTD dparam slot.

Contrary to the other SetDParamStr functions, this moves the string into the parameter slot.

Parameters
nslot of the string
strstring to bind

Definition at line 394 of file strings.cpp.

◆ StationGetSpecialString()

static void StationGetSpecialString ( StringBuilder builder,
StationFacility  x 
)
static

Definition at line 1756 of file strings.cpp.

Variable Documentation

◆ _config_language_file

std::string _config_language_file

The file (name) stored in the configuration.

Definition at line 52 of file strings.cpp.

Referenced by InitializeLanguagePacks(), and ReadLanguagePack().

◆ _current_collator

std::unique_ptr<icu::Collator> _current_collator

Collator for the language currently in use.

Definition at line 59 of file strings.cpp.

Referenced by ICUStringContains(), ReadLanguagePack(), and StrNaturalCompare().

◆ _current_language

◆ _current_text_dir

TextDirection _current_text_dir

Text direction of the currently selected language.

Definition at line 56 of file strings.cpp.

Referenced by AddCargoIconOverlay(), NWidgetLeaf::ButtonHit(), IndustryCargoesWindow::CalculatePositionInWidget(), CheckForMissingGlyphs(), ClickSliderWidget(), NWidgetMatrix::Draw(), NWidgetLeaf::Draw(), BaseSettingEntry::Draw(), CargoesField::Draw(), DrawAircraftImage(), DrawArrowButtons(), DrawButtonDropdown(), NetworkClientListWindow::DrawButtons(), DrawCargoIcons(), StationViewWindow::DrawCargoRatings(), DrawCategory(), NetworkClientListWindow::DrawCompany(), CompanyInfrastructureWindow::DrawCountLine(), DrawEngineList(), StationViewWindow::DrawEntries(), DrawFrame(), VehicleGroupWindow::DrawGroupInfo(), IndustryViewWindow::DrawInfo(), DrawLayoutLine(), GoalListWindow::DrawListColumn(), DrawOrderString(), TownAuthorityWindow::DrawRatings(), DrawRoadVehImage(), NetworkGameWindow::DrawServerLine(), SettingEntry::DrawSetting(), SettingsPage::DrawSetting(), DrawShipImage(), DrawSliderWidget(), DrawSmallOrderList(), Window::DrawSortButtonState(), TimetableWindow::DrawTimetablePanel(), DrawTrainDetails(), DrawTrainImage(), NewGRFInspectWindow::DrawVehicleChainWidget(), DepotWindow::DrawVehicleInDepot(), BaseVehicleListWindow::DrawVehicleListItems(), DrawVehicleRefitWindow(), BuildBridgeWindow::DrawWidget(), CheatWindow::DrawWidget(), SelectCompanyLiveryWindow::DrawWidget(), CompanyInfrastructureWindow::DrawWidget(), DepotWindow::DrawWidget(), GSConfigWindow::DrawWidget(), GenerateProgressWindow::DrawWidget(), GraphLegendWindow::DrawWidget(), PaymentRatesGraphWindow::DrawWidget(), PerformanceRatingDetailWindow::DrawWidget(), IndustryProductionGraphWindow::DrawWidget(), BuildIndustryWindow::DrawWidget(), IndustryCargoesWindow::DrawWidget(), PerformanceLeagueWindow::DrawWidget(), ScriptLeagueWindow::DrawWidget(), BaseNetworkContentDownloadStatusWindow::DrawWidget(), NetworkJoinStatusWindow::DrawWidget(), NewGRFParametersWindow::DrawWidget(), NewGRFWindow::DrawWidget(), ScanProgressWindow::DrawWidget(), MessageHistoryWindow::DrawWidget(), OrdersWindow::DrawWidget(), ScriptSettingsWindow::DrawWidget(), SignListWindow::DrawWidget(), SmallMapWindow::DrawWidget(), CompanyStationsWindow::DrawWidget(), SubsidyListWindow::DrawWidget(), TownViewWindow::DrawWidget(), TownDirectoryWindow::DrawWidget(), RefitWindow::DrawWidget(), VehicleDetailsWindow::DrawWidget(), VehicleViewWindow::DrawWidget(), GetAlignedPosition(), GetAutoPlacePosition(), QueryString::GetBoundingRect(), NetworkClientListWindow::GetButtonAtPoint(), QueryString::GetCaretPosition(), QueryString::GetCharAtPosition(), Layouter::GetCharPosition(), SmallMapWindow::GetPositionOnLegend(), NWidgetMatrix::GetScrollOffsets(), GetSingleVehicleWidth(), GetToolbarAlignedWindowPosition(), NWidgetMatrix::GetWidgetFromPos(), HandleScrollbarHittest(), HandleScrollbarScrolling(), HighlightDragPosition(), Window::InitializeData(), IsGoodAutoPlace2(), ItemizeBidi(), LocalGetWindowPlacement(), Textbuf::MovePos(), ReplaceVehicleWindow::OnClick(), BuildVehicleWindow::OnClick(), CheatWindow::OnClick(), GSConfigWindow::OnClick(), VehicleGroupWindow::OnClick(), IndustryViewWindow::OnClick(), NewGRFParametersWindow::OnClick(), ScriptSettingsWindow::OnClick(), GameSettingsWindow::OnClick(), RefitWindow::OnPaint(), NetworkClientListWindow::OnTooltip(), ReadLanguagePack(), Window::ReInit(), ResizeWindow(), ScrollbarClickPositioning(), ScrollRect(), SetMouseCursorVehicle(), NWidgetLeaf::SetupSmallestSize(), ShowDropDownList(), ShowTerraformToolbar(), UniscribeItemizeString(), Textbuf::UpdateCaretPosition(), DropdownWindow::UpdateSizeAndPosition(), PerformanceRatingDetailWindow::UpdateWidgetSize(), and MusicWindow::UpdateWidgetSize().

◆ _global_string_params

ArrayStringParameters<20> _global_string_params

Definition at line 62 of file strings.cpp.

◆ _initial_name_letters

const char _initial_name_letters[]
static
Initial value:
= {
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
'K', 'L', 'M', 'N', 'P', 'R', 'S', 'T', 'W',
}

Definition at line 1833 of file strings.cpp.

◆ _langpack

LoadedLanguagePack _langpack
static

Definition at line 221 of file strings.cpp.

◆ _languages

LanguageList _languages

The actual list of language meta data.

Definition at line 53 of file strings.cpp.

Referenced by GameOptionsWindow::BuildDropDownList(), FillLanguageList(), GetLanguage(), InitializeLanguagePacks(), and GameOptionsWindow::OnDropdownSelect().

◆ _scan_for_gender_data

bool _scan_for_gender_data = false
static

Are we scanning for the gender of the current string? (instead of formatting it)

Definition at line 223 of file strings.cpp.

Referenced by FormatString().

◆ _silly_company_names

const char* const _silly_company_names[]
static
Initial value:
= {
"Bloggs Brothers",
"Tiny Transport Ltd.",
"Express Travel",
"Comfy-Coach & Co.",
"Crush & Bump Ltd.",
"Broken & Late Ltd.",
"Sam Speedy & Son",
"Supersonic Travel",
"Mike's Motors",
"Lightning International",
"Pannik & Loozit Ltd.",
"Inter-City Transport",
"Getout & Pushit Ltd."
}

Definition at line 1770 of file strings.cpp.

◆ _silly_surname_list

const char* const _silly_surname_list[]
static
Initial value:
= {
"Grumpy",
"Dozy",
"Speedy",
"Nosey",
"Dribble",
"Mushroom",
"Cabbage",
"Sniffle",
"Fishy",
"Swindle",
"Sneaky",
"Nutkins"
}

Definition at line 1818 of file strings.cpp.

◆ _surname_list

const char* const _surname_list[]
static

Definition at line 1786 of file strings.cpp.

◆ _units_force

const Units _units_force[]
static
Initial value:
= {
{ { 0.224809 }, STR_UNITS_FORCE_IMPERIAL, 0 },
{ { 0.101972 }, STR_UNITS_FORCE_METRIC, 0 },
{ { 0.001 }, STR_UNITS_FORCE_SI, 0 },
}

Unit conversions for force.

Definition at line 824 of file strings.cpp.

Referenced by FormatString().

◆ _units_height

const Units _units_height[]
static
Initial value:
= {
{ { 3.0 }, STR_UNITS_HEIGHT_IMPERIAL, 0 },
{ { 1.0 }, STR_UNITS_HEIGHT_METRIC, 0 },
{ { 1.0 }, STR_UNITS_HEIGHT_SI, 0 },
}

Unit conversions for height.

Definition at line 831 of file strings.cpp.

Referenced by FormatString().

◆ _units_power

const Units _units_power[]
static
Initial value:
= {
{ { 1.0 }, STR_UNITS_POWER_IMPERIAL, 0 },
{ { 1.01387 }, STR_UNITS_POWER_METRIC, 0 },
{ { 0.745699 }, STR_UNITS_POWER_SI, 0 },
}

Unit conversions for power.

Definition at line 790 of file strings.cpp.

Referenced by FormatString().

◆ _units_power_to_weight

const Units _units_power_to_weight[]
static
Initial value:
= {
{ { 0.907185 }, STR_UNITS_POWER_IMPERIAL_TO_WEIGHT_IMPERIAL, 1 },
{ { 1.0 }, STR_UNITS_POWER_IMPERIAL_TO_WEIGHT_METRIC, 1 },
{ { 1.0 }, STR_UNITS_POWER_IMPERIAL_TO_WEIGHT_SI, 1 },
{ { 0.919768 }, STR_UNITS_POWER_METRIC_TO_WEIGHT_IMPERIAL, 1 },
{ { 1.01387 }, STR_UNITS_POWER_METRIC_TO_WEIGHT_METRIC, 1 },
{ { 1.01387 }, STR_UNITS_POWER_METRIC_TO_WEIGHT_SI, 1 },
{ { 0.676487 }, STR_UNITS_POWER_SI_TO_WEIGHT_IMPERIAL, 1 },
{ { 0.745699 }, STR_UNITS_POWER_SI_TO_WEIGHT_METRIC, 1 },
{ { 0.745699 }, STR_UNITS_POWER_SI_TO_WEIGHT_SI, 1 },
}

Unit conversions for power to weight.

Definition at line 797 of file strings.cpp.

Referenced by FormatString().

◆ _units_time_days_or_seconds

const Units _units_time_days_or_seconds[]
static
Initial value:
= {
{ { 1 }, STR_UNITS_DAYS, 0 },
{ { 2 }, STR_UNITS_SECONDS, 0 },
}

Unit conversions for time in calendar days or wallclock seconds.

Definition at line 838 of file strings.cpp.

Referenced by FormatString().

◆ _units_time_months_or_minutes

const Units _units_time_months_or_minutes[]
static
Initial value:
= {
{ { 1 }, STR_UNITS_MONTHS, 0 },
{ { 1 }, STR_UNITS_MINUTES, 0 },
}

Unit conversions for time in calendar months or wallclock minutes.

Definition at line 844 of file strings.cpp.

Referenced by FormatString().

◆ _units_time_years_or_minutes

const Units _units_time_years_or_minutes[]
static
Initial value:
= {
{ { 1 }, STR_UNITS_YEARS, 0 },
{ { 12 }, STR_UNITS_MINUTES, 0 },
}

Unit conversions for time in calendar years or wallclock minutes.

Definition at line 856 of file strings.cpp.

Referenced by FormatString().

◆ _units_time_years_or_periods

const Units _units_time_years_or_periods[]
static
Initial value:
= {
{ { 1 }, STR_UNITS_YEARS, 0 },
{ { 1 }, STR_UNITS_PERIODS, 0 },
}

Unit conversions for time in calendar years or economic periods.

Definition at line 850 of file strings.cpp.

Referenced by FormatString().

◆ _units_velocity_calendar

const Units _units_velocity_calendar[]
static
Initial value:
= {
{ { 1.0 }, STR_UNITS_VELOCITY_IMPERIAL, 0 },
{ { 1.609344 }, STR_UNITS_VELOCITY_METRIC, 0 },
{ { 0.44704 }, STR_UNITS_VELOCITY_SI, 0 },
{ { 0.578125 }, STR_UNITS_VELOCITY_GAMEUNITS_DAY, 1 },
{ { 0.868976 }, STR_UNITS_VELOCITY_KNOTS, 0 },
}

Unit conversions for velocity.

Definition at line 772 of file strings.cpp.

Referenced by GetVelocityUnits().

◆ _units_velocity_realtime

const Units _units_velocity_realtime[]
static
Initial value:
= {
{ { 1.0 }, STR_UNITS_VELOCITY_IMPERIAL, 0 },
{ { 1.609344 }, STR_UNITS_VELOCITY_METRIC, 0 },
{ { 0.44704 }, STR_UNITS_VELOCITY_SI, 0 },
{ { 0.289352 }, STR_UNITS_VELOCITY_GAMEUNITS_SEC, 1 },
{ { 0.868976 }, STR_UNITS_VELOCITY_KNOTS, 0 },
}

Unit conversions for velocity.

Definition at line 781 of file strings.cpp.

Referenced by GetVelocityUnits().

◆ _units_volume

const UnitsLong _units_volume[]
static
Initial value:
= {
{ { 264.172 }, STR_UNITS_VOLUME_SHORT_IMPERIAL, STR_UNITS_VOLUME_LONG_IMPERIAL, 0 },
{ { 1000.0 }, STR_UNITS_VOLUME_SHORT_METRIC, STR_UNITS_VOLUME_LONG_METRIC, 0 },
{ { 1.0 }, STR_UNITS_VOLUME_SHORT_SI, STR_UNITS_VOLUME_LONG_SI, 0 },
}

Unit conversions for volume.

Definition at line 817 of file strings.cpp.

Referenced by FormatString().

◆ _units_weight

const UnitsLong _units_weight[]
static
Initial value:
= {
{ { 1.102311 }, STR_UNITS_WEIGHT_SHORT_IMPERIAL, STR_UNITS_WEIGHT_LONG_IMPERIAL, 0 },
{ { 1.0 }, STR_UNITS_WEIGHT_SHORT_METRIC, STR_UNITS_WEIGHT_LONG_METRIC, 0 },
{ { 1000.0 }, STR_UNITS_WEIGHT_SHORT_SI, STR_UNITS_WEIGHT_LONG_SI, 0 },
}

Unit conversions for weight.

Definition at line 810 of file strings.cpp.

Referenced by FormatString().