diff --git a/CHANGELOG.md b/CHANGELOG.md
index f8172503..1652e140 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -24,6 +24,7 @@ bug fixes:
* Fix running `make clean ; make`.
* Fix reading stdin buffers larger than 1000.
+* Fixed various language and parent BCP 47 codes (`jp` is now `ja`).
new languages:
diff --git a/Makefile.am b/Makefile.am
index d047cdf7..a84af914 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -478,8 +478,8 @@ dictionaries: \
espeak-ng-data/id_dict \
espeak-ng-data/is_dict \
espeak-ng-data/it_dict \
+ espeak-ng-data/ja_dict \
espeak-ng-data/jbo_dict \
- espeak-ng-data/jp_dict \
espeak-ng-data/ka_dict \
espeak-ng-data/kl_dict \
espeak-ng-data/kn_dict \
@@ -756,11 +756,11 @@ dictsource/jbo_extra:
espeak-ng-data/jbo_dict: src/espeak-ng phsource/phonemes.stamp dictsource/jbo_list dictsource/jbo_rules dictsource/jbo_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak-ng --compile=jbo && cd ..
-jp: espeak-ng-data/jp_dict
-dictsource/jp_extra:
- touch dictsource/jp_extra
-espeak-ng-data/jp_dict: src/espeak-ng phsource/phonemes.stamp dictsource/jp_list dictsource/jp_rules dictsource/jp_extra
- cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak-ng --compile=jp && cd ..
+ja: espeak-ng-data/ja_dict
+dictsource/ja_extra:
+ touch dictsource/ja_extra
+espeak-ng-data/ja_dict: src/espeak-ng phsource/phonemes.stamp dictsource/ja_list dictsource/ja_rules dictsource/ja_extra
+ cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak-ng --compile=ja && cd ..
ka: espeak-ng-data/ka_dict
dictsource/ka_extra:
diff --git a/dictsource/jp_list b/dictsource/ja_list
similarity index 100%
rename from dictsource/jp_list
rename to dictsource/ja_list
diff --git a/dictsource/jp_rules b/dictsource/ja_rules
similarity index 100%
rename from dictsource/jp_rules
rename to dictsource/ja_rules
diff --git a/docs/languages.md b/docs/languages.md
index b04d3377..fc60dfa5 100644
--- a/docs/languages.md
+++ b/docs/languages.md
@@ -64,7 +64,7 @@ The supported languages are:
| `poz` | `id` | Malayo-Polynesian | Indonesian | |
| `art` | `ia` | Constructed | Interlingua | |
| `roa` | `it` | Romance | Italian | |
-| `jpx` | `jp` | Japanese | Japanese[2] | |
+| `jpx` | `ja` | Japanese | Japanese[2] | |
| `dra` | `kn` | Dravidian | Kannada | |
| `inc` | `kok` | Indic | Konkani | |
| | `ko` | | Korean | |
diff --git a/espeak-ng-data/lang/jpx/jp b/espeak-ng-data/lang/jpx/ja
similarity index 53%
rename from espeak-ng-data/lang/jpx/jp
rename to espeak-ng-data/lang/jpx/ja
index 1434828f..20e21a1e 100644
--- a/espeak-ng-data/lang/jpx/jp
+++ b/espeak-ng-data/lang/jpx/ja
@@ -1,5 +1,5 @@
name Japanese
-language jp
-phonemes jp
+language ja
+phonemes ja
intonation 4
diff --git a/phsource/ph_japanese b/phsource/ph_japanese
index 055e565f..922235d1 100644
--- a/phsource/ph_japanese
+++ b/phsource/ph_japanese
@@ -171,7 +171,7 @@ phoneme N\\
vcd uvl nas
ipa ɴ
// FIXME: Stub phoneme.
- CALL jp/n
+ CALL ja/n
endphoneme
// Plosives
diff --git a/phsource/phonemes b/phsource/phonemes
index 0728cfab..fde7f1e8 100644
--- a/phsource/phonemes
+++ b/phsource/phonemes
@@ -1669,7 +1669,7 @@ endphoneme
// ADDITIONAL PHONEME TABLES
//*******************************************************************
-phonemetable jp base1
+phonemetable ja base1
include ph_japanese
phonemetable consonants base1