.lang
files are stored as a giant JSON dictionary object of keys and values, being the 'key' is a particular translation string identifier, and the value being the text translated.
Here's a snippet from minecraft/lang/en_gb.json
:
{
"addServer.add": "Done",
"addServer.enterIp": "Server Address",
"addServer.enterName": "Server Name",
"addServer.hideAddress": "Hide Address",
"addServer.resourcePack": "Server Resource Packs",
...
"tutorial.punch_tree.description": "Hold down %s",
"tutorial.punch_tree.title": "Destroy the tree",
"tutorial.socialInteractions.description": "Press %s to open",
"tutorial.socialInteractions.title": "Social Interactions"
}
They used to be stored a giant key-value list seperated by the =
(equal sign).
addServer.add=Done
addServer.enterIp=Server Address
addServer.enterName=Server Name
addServer.hideAddress=Hide Address
...
tutorial.socialInteractions.description=Press %s to open
tutorial.socialInteractions.title=Social Interactions
If you need a template to start with, go to:
%appdata%\.minecraft\assets\objects\bd\bdd551782a0ef71c2b04537fc9cad75abbbf7cba
And rename it to en_gb.json
so that it is recognized by other programs. Note that the lang.json
files change hashes between versions as Mojang adds/removes/changes some strings. The hash above is correct as of 1.16 (Mar 07, 2021).
Just in case: ...
denotes a snippet cut because the whole file is too big to be pasted.
.lang
file, then I wouldn't need to own the Java edition to tell you what format it is ;)