Skip to content

Commit

Permalink
Add character encoding for English, German, French, Italian, Japanese…
Browse files Browse the repository at this point in the history
… and Spanish (#9)

* Add character encoding for English, German, French, Italian, Japanese and Spanish (resolves #1)

Co-authored-by: richirisu <richirisu@users.noreply.github.com>
  • Loading branch information
richirisu and richirisu authored Aug 4, 2022
1 parent d4d717a commit 192a87e
Show file tree
Hide file tree
Showing 21 changed files with 4,066 additions and 8 deletions.
805 changes: 805 additions & 0 deletions docs/character encoding.md

Large diffs are not rendered by default.

33 changes: 33 additions & 0 deletions docs/language support.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Language Support

- Original Japanese Release
- English Translation V1.01 by Neill Corlett
- French Translation RC1 by Terminus Traduction
- German Translation V1.00 RC3 to V3.0 by G-Trans
- Italian Translation V1.00b by Clomax, Ombra, Chester
- Spanish Translation V1.03 by Magno, Vegetal Gibber

## UI Changes

You can select the language of the cartridge from the combo box at the top. Unfortunately, there is no way to automatically detect the language from just the save file.

It is recommended to choose the right language before loading the save file. If you change the language afterwards, the current player names will automatically be mapped to the new encoding, leading to a possible drop of unsupported characters. If this happens, just load the save file again.

Also, the program will check for unsupported characters on input, which means you can only input valid characters for the currently selected language. For compatibility both half-width and full-width characters are supported.

Besides, most ASCII characters are present in all language encodings.

A player's name is limited to a maximum length of 6 characters.

## Remarks

There are currently two encoding files for Japanese to Unicode: One with full-width encoding and the other with half-width encoding in Unicode. Both work equally well. For now I went with full-width.

You can change this by simply overwriting `encoding_japanese_to_unicode.json` with either `encoding_japanese_to_unicode_halfwidth.json` or `encoding_japanese_to_unicode_fullwidth.json`.

Besides, when converting from Unicode to Japanese, both half-width and full-width characters are supported regardlessly.

## Known Issues

- The Italian and the Spanish cartridge encoding both have a codepoint for the double L (ll). However, there is no according Unicode codepoint for it.

113 changes: 113 additions & 0 deletions sd3save_editor/data/encoding_english_to_unicode.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
{
"\u0020":"\u0020",
"\u0021":"\u0021",
"\u0022":"\u0022",
"\u0023":"\u0023",
"\u0024":"\u0024",
"\u0025":"\u0025",
"\u0026":"\u0026",
"\u0027":"\u0027",
"\u0028":"\u0028",
"\u0029":"\u0029",
"\u002A":"\u002A",
"\u002B":"\u002B",
"\u002C":"\u002C",
"\u002D":"\u002D",
"\u002E":"\u002E",
"\u002F":"\u002F",
"\u0030":"\u0030",
"\u0031":"\u0031",
"\u0032":"\u0032",
"\u0033":"\u0033",
"\u0034":"\u0034",
"\u0035":"\u0035",
"\u0036":"\u0036",
"\u0037":"\u0037",
"\u0038":"\u0038",
"\u0039":"\u0039",
"\u003A":"\u003A",
"\u003B":"\u003B",
"\u003C":"\u003C",
"\u003D":"\u003D",
"\u003E":"\u003E",
"\u003F":"\u003F",
"\u0040":"\u0040",
"\u0041":"\u0041",
"\u0042":"\u0042",
"\u0043":"\u0043",
"\u0044":"\u0044",
"\u0045":"\u0045",
"\u0046":"\u0046",
"\u0047":"\u0047",
"\u0048":"\u0048",
"\u0049":"\u0049",
"\u004A":"\u004A",
"\u004B":"\u004B",
"\u004C":"\u004C",
"\u004D":"\u004D",
"\u004E":"\u004E",
"\u004F":"\u004F",
"\u0050":"\u0050",
"\u0051":"\u0051",
"\u0052":"\u0052",
"\u0053":"\u0053",
"\u0054":"\u0054",
"\u0055":"\u0055",
"\u0056":"\u0056",
"\u0057":"\u0057",
"\u0058":"\u0058",
"\u0059":"\u0059",
"\u005A":"\u005A",
"\u005B":"\u005B",
"\u005C":"\u005C",
"\u005D":"\u005D",
"\u005E":"\u005E",
"\u005F":"\u005F",
"\u0060":"\u0060",
"\u0061":"\u0061",
"\u0062":"\u0062",
"\u0063":"\u0063",
"\u0064":"\u0064",
"\u0065":"\u0065",
"\u0066":"\u0066",
"\u0067":"\u0067",
"\u0068":"\u0068",
"\u0069":"\u0069",
"\u006A":"\u006A",
"\u006B":"\u006B",
"\u006C":"\u006C",
"\u006D":"\u006D",
"\u006E":"\u006E",
"\u006F":"\u006F",
"\u0070":"\u0070",
"\u0071":"\u0071",
"\u0072":"\u0072",
"\u0073":"\u0073",
"\u0074":"\u0074",
"\u0075":"\u0075",
"\u0076":"\u0076",
"\u0077":"\u0077",
"\u0078":"\u0078",
"\u0079":"\u0079",
"\u007A":"\u007A",
"\u007B":"\u007B",
"\u007C":"\u007C",
"\u007D":"\u007D",
"\u007E":"\u007E",

"\u007F":"\u25A1",
"\u0081":"\uFF62",
"\u0082":"\uFF63",
"\u0083":"\u25CB",
"\u0084":"\u25CF",
"\u0085":"\u00D7",
"\u0086":"\u2025",
"\u0087":"\uFF65",
"\u0088":"\u2191",
"\u0089":"\u2193",
"\u008A":"\u2190",
"\u008B":"\u2192",
"\u008C":"\u25BC",
"\u008D":"\u2665"
}

122 changes: 122 additions & 0 deletions sd3save_editor/data/encoding_french_to_unicode.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
{
"\u0020":"\u0020",
"\u0021":"\u0021",
"\u0022":"\u0022",
"\u0023":"\u0023",
"\u0024":"\u0024",
"\u0025":"\u0025",
"\u0026":"\u0026",
"\u0027":"\u0027",
"\u0028":"\u0028",
"\u0029":"\u0029",
"\u002A":"\u002A",
"\u002B":"\u002B",
"\u002C":"\u002C",
"\u002D":"\u002D",
"\u002E":"\u002E",
"\u002F":"\u002F",
"\u0030":"\u0030",
"\u0031":"\u0031",
"\u0032":"\u0032",
"\u0033":"\u0033",
"\u0034":"\u0034",
"\u0035":"\u0035",
"\u0036":"\u0036",
"\u0037":"\u0037",
"\u0038":"\u0038",
"\u0039":"\u0039",
"\u003A":"\u003A",
"\u003B":"\u003B",
"\u003C":"\u003C",
"\u003D":"\u003D",
"\u003E":"\u003E",
"\u003F":"\u003F",
"\u0040":"\u0040",
"\u0041":"\u0041",
"\u0042":"\u0042",
"\u0043":"\u0043",
"\u0044":"\u0044",
"\u0045":"\u0045",
"\u0046":"\u0046",
"\u0047":"\u0047",
"\u0048":"\u0048",
"\u0049":"\u0049",
"\u004A":"\u004A",
"\u004B":"\u004B",
"\u004C":"\u004C",
"\u004D":"\u004D",
"\u004E":"\u004E",
"\u004F":"\u004F",
"\u0050":"\u0050",
"\u0051":"\u0051",
"\u0052":"\u0052",
"\u0053":"\u0053",
"\u0054":"\u0054",
"\u0055":"\u0055",
"\u0056":"\u0056",
"\u0057":"\u0057",
"\u0058":"\u0058",
"\u0059":"\u0059",
"\u005A":"\u005A",
"\u005B":"\u005B",
"\u005C":"\u005C",
"\u005D":"\u005D",
"\u005E":"\u005E",
"\u005F":"\u005F",
"\u0060":"\u0060",
"\u0061":"\u0061",
"\u0062":"\u0062",
"\u0063":"\u0063",
"\u0064":"\u0064",
"\u0065":"\u0065",
"\u0066":"\u0066",
"\u0067":"\u0067",
"\u0068":"\u0068",
"\u0069":"\u0069",
"\u006A":"\u006A",
"\u006B":"\u006B",
"\u006C":"\u006C",
"\u006D":"\u006D",
"\u006E":"\u006E",
"\u006F":"\u006F",
"\u0070":"\u0070",
"\u0071":"\u0071",
"\u0072":"\u0072",
"\u0073":"\u0073",
"\u0074":"\u0074",
"\u0075":"\u0075",
"\u0076":"\u0076",
"\u0077":"\u0077",
"\u0078":"\u0078",
"\u0079":"\u0079",
"\u007A":"\u007A",
"\u007B":"\u007B",
"\u007C":"\u007C",
"\u007D":"\u007D",
"\u007E":"\u007E",

"\u007F":"\u25A1",
"\u0081":"\uFF62",
"\u0082":"\uFF63",
"\u0086":"\u2025",
"\u0087":"\uFF65",
"\u0088":"\u2191",
"\u0089":"\u2193",
"\u008A":"\u2190",
"\u008B":"\u2192",
"\u008C":"\u25BC",
"\u008D":"\u2665",
"\u008E":"\u00E9",
"\u008F":"\u00E8",
"\u0090":"\u00EA",
"\u0091":"\u00EF",
"\u0092":"\u00F9",
"\u0093":"\u00E0",
"\u0094":"\u00E2",
"\u0095":"\u00EE",
"\u0096":"\u00F4",
"\u0097":"\u00FB",
"\u0098":"\u00E7",
"\u0099":"\u00D7"
}

121 changes: 121 additions & 0 deletions sd3save_editor/data/encoding_german_to_unicode.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
{
"\u0020":"\u0020",
"\u0021":"\u0021",
"\u0022":"\u0022",
"\u0023":"\u0023",
"\u0024":"\u0024",
"\u0025":"\u0025",
"\u0026":"\u0026",
"\u0027":"\u0027",
"\u0028":"\u0028",
"\u0029":"\u0029",
"\u002A":"\u002A",
"\u002B":"\u002B",
"\u002C":"\u002C",
"\u002D":"\u002D",
"\u002E":"\u002E",
"\u002F":"\u002F",
"\u0030":"\u0030",
"\u0031":"\u0031",
"\u0032":"\u0032",
"\u0033":"\u0033",
"\u0034":"\u0034",
"\u0035":"\u0035",
"\u0036":"\u0036",
"\u0037":"\u0037",
"\u0038":"\u0038",
"\u0039":"\u0039",
"\u003A":"\u003A",
"\u003B":"\u003B",
"\u003C":"\u003C",
"\u003D":"\u003D",
"\u003E":"\u003E",
"\u003F":"\u003F",
"\u0040":"\u0040",
"\u0041":"\u0041",
"\u0042":"\u0042",
"\u0043":"\u0043",
"\u0044":"\u0044",
"\u0045":"\u0045",
"\u0046":"\u0046",
"\u0047":"\u0047",
"\u0048":"\u0048",
"\u0049":"\u0049",
"\u004A":"\u004A",
"\u004B":"\u004B",
"\u004C":"\u004C",
"\u004D":"\u004D",
"\u004E":"\u004E",
"\u004F":"\u004F",
"\u0050":"\u0050",
"\u0051":"\u0051",
"\u0052":"\u0052",
"\u0053":"\u0053",
"\u0054":"\u0054",
"\u0055":"\u0055",
"\u0056":"\u0056",
"\u0057":"\u0057",
"\u0058":"\u0058",
"\u0059":"\u0059",
"\u005A":"\u005A",
"\u005B":"\u005B",
"\u005C":"\u005C",
"\u005D":"\u005D",
"\u005E":"\u005E",
"\u005F":"\u005F",
"\u0060":"\u0060",
"\u0061":"\u0061",
"\u0062":"\u0062",
"\u0063":"\u0063",
"\u0064":"\u0064",
"\u0065":"\u0065",
"\u0066":"\u0066",
"\u0067":"\u0067",
"\u0068":"\u0068",
"\u0069":"\u0069",
"\u006A":"\u006A",
"\u006B":"\u006B",
"\u006C":"\u006C",
"\u006D":"\u006D",
"\u006E":"\u006E",
"\u006F":"\u006F",
"\u0070":"\u0070",
"\u0071":"\u0071",
"\u0072":"\u0072",
"\u0073":"\u0073",
"\u0074":"\u0074",
"\u0075":"\u0075",
"\u0076":"\u0076",
"\u0077":"\u0077",
"\u0078":"\u0078",
"\u0079":"\u0079",
"\u007A":"\u007A",
"\u007B":"\u007B",
"\u007C":"\u007C",
"\u007D":"\u007D",
"\u007E":"\u007E",

"\u0081":"\uFF62",
"\u0082":"\uFF63",
"\u0086":"\u2025",
"\u0087":"\uFF65",
"\u0088":"\u2191",
"\u0089":"\u2193",
"\u008A":"\u2190",
"\u008B":"\u2192",
"\u008C":"\u25BC",
"\u008D":"\u2665",
"\u008E":"\u00C4",
"\u008F":"\u00E4",
"\u0090":"\u00D6",
"\u0091":"\u00F6",
"\u0092":"\u00DC",
"\u0093":"\u00FC",
"\u0094":"\u00DF",
"\u0095":"\u1E9E",
"\u0096":"\u201E",
"\u0097":"\u201C",
"\u0098":"\u25CF",
"\u0099":"\u00D7"
}

Loading

0 comments on commit 192a87e

Please sign in to comment.