From 322b7f1f2f9ff32366429155d8a87279089799f5 Mon Sep 17 00:00:00 2001 From: Jeroen van Rijn Date: Wed, 19 Jun 2024 11:41:58 +0200 Subject: [PATCH] Spell check i18n.odin. --- core/text/i18n/i18n.odin | 112 +++++++++++++-------------------------- 1 file changed, 38 insertions(+), 74 deletions(-) diff --git a/core/text/i18n/i18n.odin b/core/text/i18n/i18n.odin index 87bd77045..0190ef0f7 100644 --- a/core/text/i18n/i18n.odin +++ b/core/text/i18n/i18n.odin @@ -10,23 +10,13 @@ package i18n */ import "core:strings" -/* - TODO: - - Support for more translation catalog file formats. -*/ - -/* - Currently active catalog. -*/ +// Currently active catalog. ACTIVE: ^Translation // Allow between 1 and 255 plural forms. Default: 10. MAX_PLURALS :: min(max(#config(ODIN_i18N_MAX_PLURAL_FORMS, 10), 1), 255) -/* - The main data structure. This can be generated from various different file formats, as long as we have a parser for them. -*/ - +// The main data structure. This can be generated from various different file formats, as long as we have a parser for them. Section :: map[string][]string Translation :: struct { @@ -37,34 +27,24 @@ Translation :: struct { } Error :: enum { - /* - General return values. - */ + // General return values. None = 0, Empty_Translation_Catalog, Duplicate_Key, - /* - Couldn't find, open or read file. - */ + // Couldn't find, open or read file. File_Error, - /* - File too short. - */ + // File too short. Premature_EOF, - /* - GNU Gettext *.MO file errors. - */ + // GNU Gettext *.MO file errors. MO_File_Invalid_Signature, MO_File_Unsupported_Version, MO_File_Invalid, MO_File_Incorrect_Plural_Count, - /* - Qt Linguist *.TS file errors. - */ + // Qt Linguist *.TS file errors. TS_File_Parse_Error, TS_File_Expected_Context, TS_File_Expected_Context_Name, @@ -84,23 +64,19 @@ DEFAULT_PARSE_OPTIONS :: Parse_Options{ merge_sections = false, } -// ***************** -// get() PROC GROUP -// ***************** - /* Returns the first translation string for the passed `key`. - It is also aliases with `get( )`. + It is also aliased with `get()`. Two ways to use it: - - get(key), which defaults to the `i18n.ACTIVE`` catalogue, or - - get(key, catalog) to grab text from a specific loaded catalogue. + - get(key), which defaults to the `i18n.ACTIVE` catalogue, or + - get(key, catalog) to grab text from a specific loaded catalogue Inputs: - - key: the string to translate. + - key: the string to translate - catalog: the catalogue to use for the translation (defaults to i18n.ACTIVE) - Returns: the translated string or the original `key` if no translation was found. + Returns: the translated string, or the original `key` if no translation was found. */ get_single_section :: proc(key: string, catalog: ^Translation = ACTIVE) -> (value: string) { return get_by_slot(key, 0, catalog) @@ -108,18 +84,18 @@ get_single_section :: proc(key: string, catalog: ^Translation = ACTIVE) -> (valu /* Returns the first translation string for the passed `key` in a specific section or context. - It is also aliases with `get( )`. + It is also aliases with `get()`. Two ways to use it: - - get(section, key), which defaults to the `i18n.ACTIVE`` catalogue, or - - get(section, key, catalog) to grab text from a specific loaded catalogue. + - get(section, key), which defaults to the `i18n.ACTIVE` catalogue, or + - get(section, key, catalog) to grab text from a specific loaded catalogue Inputs: - - section: the catalogue section (sometime also called 'context') from which to lookup the translation - - key: the string to translate. + - section: the catalogue section (sometimes also called 'context') in which to look up the translation + - key: the string to translate - catalog: the catalogue to use for the translation (defaults to i18n.ACTIVE) - Returns: the translated string or the original `key` if no translation was found. + Returns: the translated string, or the original `key` if no translation was found. */ get_by_section :: proc(section, key: string, catalog: ^Translation = ACTIVE) -> (value: string) { return get_by_slot(section, key, 0, catalog) @@ -127,26 +103,22 @@ get_by_section :: proc(section, key: string, catalog: ^Translation = ACTIVE) -> get :: proc{get_single_section, get_by_section} -// ***************** -// get_n() PROC GROUP -// ***************** - /* Returns the translation string for the passed `key` in a specific plural form (if present in the catalogue). - It is also aliases with `get_n( )`. + It is also aliased with `get_n()`. Two ways to use it: - get_n(key, quantity), which returns the appropriate plural from the active catalogue, or - - get_n(key, quantity, catalog) to grab text from a specific loaded catalogue. + - get_n(key, quantity, catalog) to grab text from a specific loaded catalogue Inputs: - - key: the string to translate. - - qantity: the quantity of item to be used to select the correct plural form. - - catalog: the catalogue to use for the translation (defaults to i18n.ACTIVE) + - key: the string to translate + - quantity: the quantity of item to be used to select the correct plural form + - catalog: the catalogue to use for the translation (defaults to i18n.ACTIVE) - Returns: the translated string or the original `key` if no translation was found. + Returns: the translated string, or the original `key` if no translation was found. */ -get_single_section_w_plural :: proc(key: string, quantity: int, catalog: ^Translation = ACTIVE) -> (value: string) { +get_single_section_with_quantity :: proc(key: string, quantity: int, catalog: ^Translation = ACTIVE) -> (value: string) { /* A lot of languages use singular for 1 item and plural for 0 or more than 1 items. This is our default pluralize rule. */ @@ -161,21 +133,21 @@ get_single_section_w_plural :: proc(key: string, quantity: int, catalog: ^Transl /* Returns the translation string for the passed `key` in a specific plural form (if present in the catalogue) in a specific section or context. - It is also aliases with `get_n( )`. + It is also aliases with `get_n()`. Two ways to use it: - get(section, key, quantity), which returns the appropriate plural from the active catalogue, or - - get(section, key, quantity, catalog) to grab text from a specific loaded catalogue. + - get(section, key, quantity, catalog) to grab text from a specific loaded catalogue Inputs: - section: the catalogue section (sometime also called 'context') from which to lookup the translation - - key: the string to translate. - - qantity: the quantity of item to be used to select the correct plural form. + - key: the string to translate + - qantity: the quantity of item to be used to select the correct plural form - catalog: the catalogue to use for the translation (defaults to i18n.ACTIVE) - Returns: the translated string or the original `key` if no translation was found. + Returns: the translated string, or the original `key` if no translation was found */ -get_by_section_w_plural :: proc(section, key: string, quantity: int, catalog: ^Translation = ACTIVE) -> (value: string) { +get_by_section_with_quantity :: proc(section, key: string, quantity: int, catalog: ^Translation = ACTIVE) -> (value: string) { /* A lot of languages use singular for 1 item and plural for 0 or more than 1 items. This is our default pluralize rule. */ @@ -186,11 +158,7 @@ get_by_section_w_plural :: proc(section, key: string, quantity: int, catalog: ^T } return get_by_slot(section, key, slot, catalog) } -get_n :: proc{get_single_section_w_plural, get_by_section_w_plural} - -// ***************** -// get_by_slot() PROC GROUP -// ***************** +get_n :: proc{get_single_section_with_quantity, get_by_section_with_quantity} /* Two ways to use: @@ -202,10 +170,10 @@ get_n :: proc{get_single_section_w_plural, get_by_section_w_plural} Inputs: - key: the string to translate. - - qantity: the translation slot to choose (slots refer to plural forms specific for each language and their meaning changes from catalogue to catalogue). + - slot: the translation slot to choose (slots refer to plural forms specific for each language and their meaning changes from catalogue to catalogue). - catalog: the catalogue to use for the translation (defaults to i18n.ACTIVE) - Returns: the translated string or the original `key` if no translation was found. + Returns: the translated string, or the original `key` if no translation was found. */ get_by_slot_single_section :: proc(key: string, slot: int, catalog: ^Translation = ACTIVE) -> (value: string) { return get_by_slot_by_section("", key, slot, catalog) @@ -221,22 +189,18 @@ get_by_slot_single_section :: proc(key: string, slot: int, catalog: ^Translation Inputs: - section: the catalogue section (sometime also called 'context') from which to lookup the translation - key: the string to translate. - - qantity: the translation slot to choose (slots refer to plural forms specific for each language and their meaning changes from catalogue to catalogue). + - slot: the translation slot to choose (slots refer to plural forms specific for each language and their meaning changes from catalogue to catalogue). - catalog: the catalogue to use for the translation (defaults to i18n.ACTIVE) Returns: the translated string or the original `key` if no translation was found. */ get_by_slot_by_section :: proc(section, key: string, slot: int, catalog: ^Translation = ACTIVE) -> (value: string) { if catalog == nil || section not_in catalog.k_v { - /* - Return the key if the catalog catalog hasn't been initialized yet, or the section is not present. - */ + // Return the key if the catalog catalog hasn't been initialized yet, or the section is not present. return key } - /* - Return the translation from the requested slot if this key is known, else return the key. - */ + // Return the translation from the requested slot if this key is known, else return the key. if translations, ok := catalog.k_v[section][key]; ok { plural := min(max(0, slot), len(catalog.k_v[section][key]) - 1) return translations[plural] @@ -265,4 +229,4 @@ destroy :: proc(catalog: ^Translation = ACTIVE, allocator := context.allocator) delete(catalog.k_v) strings.intern_destroy(&catalog.intern) free(catalog) -} +} \ No newline at end of file