Skip to content

Commit 40f806f

Browse files
committed
Added new languages
1 parent 8722c81 commit 40f806f

File tree

8 files changed

+1835
-120
lines changed

8 files changed

+1835
-120
lines changed

docs/mapcode_library_c.docx

-1.24 KB
Binary file not shown.

mapcodelib/internal_territory_names_ax.h

Lines changed: 569 additions & 0 deletions
Large diffs are not rendered by default.

mapcodelib/internal_territory_names_es.h

Lines changed: 569 additions & 0 deletions
Large diffs are not rendered by default.

mapcodelib/internal_territory_names_hi.h

Lines changed: 114 additions & 114 deletions
Large diffs are not rendered by default.

mapcodelib/internal_territory_names_it.h

Lines changed: 569 additions & 0 deletions
Large diffs are not rendered by default.

mapcodelib/mapcoder.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,14 @@
2525
#include "internal_territory_alphabets.h"
2626
#include "internal_territory_names_local.h"
2727
#include "internal_alphabet_recognizer.h"
28+
#include "internal_territory_names_ax.h"
2829
#include "internal_territory_names_da.h"
2930
#include "internal_territory_names_de.h"
3031
#include "internal_territory_names_en.h"
32+
#include "internal_territory_names_es.h"
3133
#include "internal_territory_names_fr.h"
3234
#include "internal_territory_names_hi.h"
35+
#include "internal_territory_names_it.h"
3336
#include "internal_territory_names_nl.h"
3437
#include "internal_territory_names_local.h"
3538

@@ -112,11 +115,14 @@ typedef struct {
112115
} LocaleRegistryItem;
113116

114117
static const LocaleRegistryItem LOCALE_REGISTRY[] = {
118+
{"AR", TERRITORY_FULL_NAME_AX},
115119
{"DA", TERRITORY_FULL_NAME_DA},
116120
{"DE", TERRITORY_FULL_NAME_DE},
117121
{"EN", TERRITORY_FULL_NAME_EN},
122+
{"ES", TERRITORY_FULL_NAME_ES},
118123
{"FR", TERRITORY_FULL_NAME_FR},
119124
{"HI", TERRITORY_FULL_NAME_HI},
125+
{"IT", TERRITORY_FULL_NAME_IT},
120126
{"NL", TERRITORY_FULL_NAME_NL}
121127
};
122128

mapcodelib/mapcoder.h

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,13 @@ extern "C" {
2929
#define DEFAULT_TERRITORY_FULL_NAME TERRITORY_FULL_NAME_EN
3030

3131
#ifndef MAPCODE_NO_SUPPORT_ALL_LANGUAGES
32+
#define MAPCODE_SUPPORT_LANGUAGE_AX
3233
#define MAPCODE_SUPPORT_LANGUAGE_DA
3334
#define MAPCODE_SUPPORT_LANGUAGE_DE
35+
#define MAPCODE_SUPPORT_LANGUAGE_ES
3436
#define MAPCODE_SUPPORT_LANGUAGE_FR
3537
#define MAPCODE_SUPPORT_LANGUAGE_HI
38+
#define MAPCODE_SUPPORT_LANGUAGE_IT
3639
#define MAPCODE_SUPPORT_LANGUAGE_NL
3740
#endif
3841

@@ -46,11 +49,10 @@ extern "C" {
4649
#define MAX_ISOCODE_ASCII_LEN 7 // Max. chars in a valid ISO3166 territory code.
4750
#define MAX_CLEAN_MAPCODE_ASCII_LEN (MAX_PROPER_MAPCODE_ASCII_LEN + 1 + MAX_PRECISION_DIGITS) // Max. chars in a clean mapcode (excluding zero-terminator).
4851
#define MAX_MAPCODE_RESULT_ASCII_LEN (MAX_ISOCODE_ASCII_LEN + 1 + MAX_CLEAN_MAPCODE_ASCII_LEN + 1) // Max. chars to store a single result (including zero-terminator).
49-
#define MAX_TERRITORY_FULLNAME_ASCII_LEN 79 // Max. number of characters to store the longest possible territory name in ASCII/Roman.
52+
#define MAX_TERRITORY_FULLNAME_UTF8_LEN 127 // Max. number of characters to store the longest possible territory name (in UTF8)
5053

51-
#define MAX_MAPCODE_RESULT_UTF8_LEN (MAX_MAPCODE_RESULT_ASCII_LEN * 4)
52-
#define MAX_MAPCODE_RESULT_UTF16_LEN (MAX_MAPCODE_RESULT_ASCII_LEN * 4)
53-
#define MAX_TERRITORY_FULLNAME_UTF8_LEN (MAX_TERRITORY_FULLNAME_ASCII_LEN * 4)
54+
#define MAX_MAPCODE_RESULT_UTF8_LEN (MAX_MAPCODE_RESULT_ASCII_LEN * 3) // One mapcode character can become at most 3 UTF8characters.
55+
#define MAX_MAPCODE_RESULT_UTF16_LEN (MAX_MAPCODE_RESULT_ASCII_LEN) // Each mapcode character can become one UTF16 word.
5456

5557

5658
/**
@@ -465,7 +467,7 @@ char *convertMapcodeToAlphabetUtf8(char *utf8String, const char *asciiString, en
465467
*
466468
* Arguments:
467469
* utf16String - Buffer to be filled with the Unicode string result.
468-
* Must have capacity for MAX_MAPCODE_RESULT_UTF16_LEN characters.
470+
* Must have capacity for MAX_MAPCODE_RESULT_UTF16_LEN 16-bit characters.
469471
* asciiString - ASCII string to encode (must be < MAX_MAPCODE_RESULT_ASCII_LEN characters).
470472
* alphabet - Alphabet to use.
471473
*

test/unittest.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1704,7 +1704,7 @@ int testGetFullTerritoryName(void) {
17041704
const TerritoryAlphabets *territoryAlphabets;
17051705
char territoryName[MAX_TERRITORY_FULLNAME_UTF8_LEN + 2]; // large so we can test overflow
17061706
static const char *locales_to_test[] = {
1707-
"DA", "DE", "EN", "FR", "NL"};
1707+
"AR", "DA", "DE", "EN", "ES", "FR", "HI", "IT", "NL"};
17081708

17091709
nrTests += testGetFullTerritoryNameInLocale("Sancta Sedes", TERRITORY_VAT, 0, NULL); // Local name.
17101710
nrTests += testGetFullTerritoryNameInLocale("Vatican", TERRITORY_VAT, 0, ""); // Wrong locale -> fallback language.

0 commit comments

Comments
 (0)