I've made a simple mod and my textures, models, and blockstates are recognized and show up in the game, but my localized names simply do not. The mod is called Yo-yo so I have the ./src/main/resources/assets/yoyo/ folder, which contains blockstates/, lang/, models/, and textures/. I set the item's unlocalized name with setUnlocalizedName("yoyo_placer"). Minecraft correctly picks up the model and texture and getUnlocalizedName() returns "item.yoyo_placer", but the name still shows up as "item.yoyo_placer.name" in game. My language is set to en_US, my language file is in lang/ and named en_US.lang, it is a UTF-8 text file with a BOM and LF line endings. It is in the same location and format as every tutorial I can find. Most big name mods on github seem to have the resources folder somewhere else but the structure within it is the same. The code can be found here: https://github.com/hacatu/yoyo. I am running Minecraft 1.11, Minecraft Forge 1.11-13.19.1.2199, Forge Gradle 2.2, Gradle 3.3, Groovy 2.4.7, Ant 1.9.6, Java 1.8.0_112, and Arch Linux 4.8.13-1 64 bit.