1.13'te, Minecraft dil dosyaları basit bir çok satırlı anahtar = değer formatından JSON'a değiştirildi .
Meydan okuma
Bir JSON dizesi döndüren özgün biçimden dönüştüren bir program yazın. Giriş herhangi bir standart giriş yöntemi kullanılarak alınabilir, çıkış herhangi bir standart çıkış yönteminden json olmalıdır
Orijinal biçim, anahtar = değer çiftlerine sahip satırlar içerir, örneğin
tile.dirt.name=Dirt
advMode.nearestPlayer=Use "@p" to target nearest player
build.tooHigh=Height limit for building is %s blocks
Key = value ile büyük bir JSON nesnesine dönüştürülmelidir
{
"tile.dirt.name": "Dirt",
"advMode.nearestPlayer": "Use \"@p\" to target nearest player",
"build.tooHigh": "Height limit for building is %s blocks"
}
Bazı detaylar
- Geçerli anahtar JSON'a yalnızca doğru anahtar / değer çiftlerini içerdiği sürece izin verilir. Sondaki virgüllere izin verilir, çünkü Minecraft onlara izin verir.
- Kaçması gereken tek şey tırnak. (1.13'ten önce dil dosyasında yeni satırlar, ters eğik çizgiler veya başka json-break şeyler yoktu)
- Boş satırlar dikkate alınmamalıdır
- Satırlar tam olarak eşittir
Test Durumları
Giriş:
tile.dirt.name=Dirt
advMode.nearestPlayer=Use "@p" to target nearest player
build.tooHigh=Height limit for building is %s blocks
Çıktı:
{
"tile.dirt.name": "Dirt",
"advMode.nearestPlayer": "Use \"@p\" to target nearest player",
"build.tooHigh": "Height limit for building is %s blocks"
}
Giriş:
translation.test.none=Hello, world!
translation.test.complex=Prefix, %s%2$s again %s and %1$s lastly %s and also %1$s again!
translation.test.escape=%%s %%%s %%%%s %%%%%s
translation.test.invalid=hi %
translation.test.invalid2=hi % s
translation.test.args=%s %s
translation.test.world=world
Çıktı:
{
"translation.test.none": "Hello, world!",
"translation.test.complex": "Prefix, %s%2$s again %s and %1$s lastly %s and also %1$s again!",
"translation.test.escape": "%%s %%%s %%%%s %%%%%s",
"translation.test.invalid": "hi %",
"translation.test.invalid2": "hi % s",
"translation.test.args": "%s %s",
"translation.test.world": "world",
}
Giriş:
stat.mineBlock=%1$s Mined
stat.craftItem=%1$s Crafted
stat.useItem=%1$s Used
stat.breakItem=%1$s Depleted
Çıktı:
{
"stat.mineBlock": "%1$s Mined",
"stat.craftItem": "%1$s Crafted",
"stat.useItem": "%1$s Used",
"stat.breakItem": "%1$s Depleted"
}
=
mu?
tile.dirt.name
olur"block.minecraft.dirt"
?