diff --git a/devTools/types/FC/human.d.ts b/devTools/types/FC/human.d.ts
index b7fdcf8e73f9e11ae975c6761a44f4350c5a167d..fe3d6fccb4ae98573d3c13627bc43b0f30f23a9a 100644
--- a/devTools/types/FC/human.d.ts
+++ b/devTools/types/FC/human.d.ts
@@ -257,8 +257,8 @@ declare global {
 			"breast redistributors" | "butt redistributors" | "sag-B-gone" | "growth stimulants" | "stimulants";
 
 		type EarWear = WithNone<"hearing aids" | "muffling ear plugs" | "deafening ear plugs">;
-		type EarShape = WithNone<"damaged" | "normal" | "pointy" | "elven" | "ushi" | "robot">;
-		type EarTypeKemonomimi = WithNone<"normal" | "neko" | "inu" | "kit" | "tanuki" | "usagi">;
+		type EarShape = WithNone<"damaged" | "normal" | "pointy" | "elven" | "cow" | "robot" | "orcish" | "sheep" | "deer" | "gazelle" | "bird" | "dragon">;
+		type EarTypeKemonomimi = WithNone<"normal" | "cat" | "leopard" | "tiger" | "dog" | "wolf" | "jackal" | "fox" | "tanuki" | "raccoon" | "rabbit" | "squirrel"| "horse">;
 		type EyebrowStyle = "bald" | "curved" | "elongated" | "high-arched" | "natural" | "rounded" | "shaved" | "shortened" |
 			"slanted inwards" | "slanted outwards" | "straight";
 		type EyebrowThickness = "pencil-thin" | "thin" | "threaded" | "natural" | "tapered" | "thick" | "bushy";
@@ -283,7 +283,7 @@ declare global {
 		type InflationLiquid = WithNone<"water" | "cum" | "milk" | "food" | "aphrodisiac" | "curative" | "tightener" | "urine" | "stimulant">;
 		type TailType = WithNone<"mod" | "combat" | "sex">;
 		type Markings = WithNone<"beauty mark" | "birthmark" | "freckles" | "heavily freckled">;
-		type TailShape = WithNone<"neko" | "inu" | "kit" | "kitsune" | "tanuki" | "ushi" | "usagi" | "risu" | "uma">;
+		type TailShape = WithNone<"cat" | "leopard" | "tiger" | "dog" | "jaguar" | "lion" | "wolf" | "jackal" | "fox" | "kitsune" | "tanuki" | "raccoon" | "rabbit" | "squirrel" | "horse" | "bird" | "phoenix" | "peacock" | "raven" | "swan" | "sheep" | "cow" | "gazelle" | "deer" | "succubus" | "dragon" >;
 		type ToyHole = "all her holes" | "mouth" | "boobs" | "pussy" | "ass" | "dick";
 		type OvaryImplantType = 0 | "fertility" | "sympathy" | "asexual";
 		type NippleShape = "huge" | "puffy" | "inverted" | "tiny" | "cute" | "partially inverted" | "fuckable" | "flat";
diff --git a/js/003-data/dictionary.js b/js/003-data/dictionary.js
new file mode 100644
index 0000000000000000000000000000000000000000..7ab039156b9b329f9827be8c5e46d86183100afb
--- /dev/null
+++ b/js/003-data/dictionary.js
@@ -0,0 +1,23 @@
+App.Data.dictionary = {
+	"cat": {
+		Japanese: "neko"
+	},
+	"dog": {
+		Japanese: "inu"
+	},
+	"fox": {
+		Japanese: "kit"
+	},
+	"cow": {
+		Japanese: "ushi"
+	},
+	"rabbit": {
+		Japanese: "usagi"
+	},
+	"squirrel": {
+		Japanese: "risu"
+	},
+	"horse": {
+		Japanese: "uma"
+	},
+};
diff --git a/js/003-data/slaveProstheticsData.js b/js/003-data/slaveProstheticsData.js
index 80b89c1a22a502648eaed8ba15b60c75a3faf90c..da6ed9f59d761a89e0737907f8ed1d8ce6f0d3ca 100644
--- a/js/003-data/slaveProstheticsData.js
+++ b/js/003-data/slaveProstheticsData.js
@@ -149,15 +149,32 @@ App.Data.prosthetics = {
  * @type {Map<FC.TailShape, {animal: string, desc: string}>}
  */
 App.Data.modTails = new Map([
-	["neko", {animal: "Cat", desc: "a long, slender cat tail"}],
-	["inu", {animal: "Dog", desc: "a bushy dog tail"}],
-	["kit", {animal: "Fox", desc: "a soft, fluffy fox tail"}],
-	["kitsune", {animal: "Kitsune", desc: "three incredibly soft, fluffy fox tails"}],
+	["cat", {animal: "Cat", desc: "a long, slender cat tail"}],
+	["leopard", {animal: "Leopard", desc: "a long, fluffy leopard tail"}],
+	["tiger", {animal: "Tiger", desc: "a long, fluffy tiger tail"}],
+	["jaguar", {animal: "Jaguar", desc: "a long, fluffy jaguar tail"}],
+	["lion", {animal: "Lion", desc: "a long, slender lion tail"}],
+	["dog", {animal: "Dog", desc: "a bushy dog tail"}],
+	["wolf", {animal: "Wolf", desc: "a long and fluffy wolf tail"}],
+	["jackal", {animal: "Jackal", desc: "a bushy jackal tail"}],
+	["fox", {animal: "Fox", desc: "a soft, fluffy fox tail"}],
+	["kitsune", {animal: "Kitsune", desc: "nine incredibly soft, fluffy fox tails"}],
 	["tanuki", {animal: "Tanuki", desc: "a long, fluffy tanuki tail"}],
-	["ushi", {animal: "Cow", desc: "a long cow tail"}],
-	["usagi", {animal: "Rabbit", desc: "a short rabbit tail"}],
-	["risu", {animal: "Squirrel", desc: "a large squirrel tail"}],
-	["uma", {animal: "Horse", desc: "a long horse tail"}]
+	["raccoon", {animal: "Raccoon", desc: "a long, fluffy raccoon tail"}],
+	["rabbit", {animal: "Rabbit", desc: "a short rabbit tail"}],
+	["squirrel", {animal: "Squirrel", desc: "a large squirrel tail"}],
+	["horse", {animal: "Horse", desc: "a long horse tail"}],
+	["bird", {animal: "Bird", desc: "a bundle of tail feathers"}],
+	["phoenix", {animal: "Phoenix", desc: "a magnificent bundle of luminescent tail feathers"}],
+	["peacock", {animal: "Peacock", desc: "a gorgeous bundle of peacock tail feathers"}],
+	["raven", {animal: "Raven", desc: "a bundle of crow tail feathers"}],
+	["swan", {animal: "Swan", desc: "a small bundle of short swan tail feathers"}],
+	["sheep", {animal: "Sheep", desc: "a short, woolly sheep's tail"}],
+	["cow", {animal: "Cow", desc: "a long cow tail"}],
+	["gazelle", {animal: "Gazelle", desc: "a short, silky gazelle tail"}],
+	["deer", {animal: "Deer", desc: "a short deer tail"}],
+	["succubus", {animal: "Succubus", desc: "a long, slender succubus tail"}],
+	["dragon", {animal: "Dragon", desc: "a long, thick dragon tail"}]
 ]);
 
 /**
diff --git a/js/medicine/surgery/ears/earMajor.js b/js/medicine/surgery/ears/earMajor.js
index b4bfe5dcefac98d9149ab04c75295cc22045dd15..600a306762597df262f51ae8783b00b42bb72076 100644
--- a/js/medicine/surgery/ears/earMajor.js
+++ b/js/medicine/surgery/ears/earMajor.js
@@ -77,17 +77,15 @@ App.Medicine.Surgery.Procedures.EarMajorReshape = class extends App.Medicine.Sur
 App.Medicine.Surgery.Procedures.TopEarReshape = class extends App.Medicine.Surgery.Procedure {
 	/**
 	 * @param {App.Entity.SlaveState} slave
-	 * @param {string} shapeName
 	 * @param {FC.EarTypeKemonomimi} newShape
 	 */
-	constructor(slave, shapeName, newShape) {
+	constructor(slave, newShape) {
 		super(slave);
-		this.shapeName = shapeName;
-		this.targetShape = newShape;
+		this.newShape = newShape;
 	}
 
 	get name() {
-		return `Reshape into ${this.shapeName} ears`;
+		return `Reshape into ${this.newShape} ears`;
 	}
 
 	get healthCost() {
@@ -95,7 +93,7 @@ App.Medicine.Surgery.Procedures.TopEarReshape = class extends App.Medicine.Surge
 	}
 
 	apply(cheat) {
-		this._slave.earT = this.targetShape;
+		this._slave.earT = this.newShape;
 		return this._assemble(new App.Medicine.Surgery.Reactions.EarMajor());
 	}
 };
diff --git a/src/002-config/fc-version.js b/src/002-config/fc-version.js
index 2d224c4f0d002ddaf93a01cb8c4577db6abf50c6..4e33ea4c9dbc5ec7f461dd0ddd8bfe5f87b5d7b3 100644
--- a/src/002-config/fc-version.js
+++ b/src/002-config/fc-version.js
@@ -2,5 +2,5 @@ App.Version = {
 	base: "0.10.7.1", // The vanilla version the mod is based off of, this should never be changed.
 	pmod: "4.0.0-alpha.8",
 	commitHash: null,
-	release: 1140 // When getting close to 2000,  please remove the check located within the onLoad() function defined at line five of src/js/eventHandlers.js.
+	release: 1141 // When getting close to 2000,  please remove the check located within the onLoad() function defined at line five of src/js/eventHandlers.js.
 };
diff --git a/src/Mods/Catmod/events/CMREFS/refsTotallyLegitCatgirls.js b/src/Mods/Catmod/events/CMREFS/refsTotallyLegitCatgirls.js
index a981b6c91b82f25746b3d9192eda7e668cdf2914..d505ca800d872d8a3e7f7f6a45ec0120cfdcda61 100644
--- a/src/Mods/Catmod/events/CMREFS/refsTotallyLegitCatgirls.js
+++ b/src/Mods/Catmod/events/CMREFS/refsTotallyLegitCatgirls.js
@@ -8,7 +8,7 @@ App.Events.refsTotallyLegitCatgirls = class refsTotallyLegitCatgirls extends App
 	execute(node) {
 		const slave = GenerateNewSlave("XX", {minAge: 16, maxAge: 24});
 		slave.origin = "You purchased $him from a reputable street merchant selling you completely legitimate catgirls.";
-		slave.tailShape = "neko";
+		slave.tailShape = "cat";
 		slave.tailColor = slave.hColor;
 		slave.collar = "uncomfortable leather";
 		slave.clothes = "kitty lingerie";
diff --git a/src/Mods/Catmod/events/nonRandom/projectNComplete.js b/src/Mods/Catmod/events/nonRandom/projectNComplete.js
index f8047469b776c712062ce17964868b3882d268ff..c695bdc02fbdeb1cc8483fc40cec141e40b119df 100644
--- a/src/Mods/Catmod/events/nonRandom/projectNComplete.js
+++ b/src/Mods/Catmod/events/nonRandom/projectNComplete.js
@@ -32,10 +32,10 @@ App.Events.SEProjectNComplete = class SEProjectNComplete extends App.Events.Base
 		slave.trust = 30;
 		slave.boobs = 300;
 		slave.earShape = "none";
-		slave.earT = "neko";
+		slave.earT = "cat";
 		slave.earTColor = slave.hColor;
 		slave.earImplant = 1;
-		slave.tailShape = "neko";
+		slave.tailShape = "cat";
 		slave.tailColor = slave.hColor;
 		slave.eye.left.pupil = "catlike";
 		slave.eye.right.pupil = "catlike";
diff --git a/src/Mods/Catmod/events/reRecruit/punkFemcat.js b/src/Mods/Catmod/events/reRecruit/punkFemcat.js
index 2a12b1cc7bf086af27e14fca9e968fb841f33b75..ae701669bd0167977aad83810addf22af32bbd71 100644
--- a/src/Mods/Catmod/events/reRecruit/punkFemcat.js
+++ b/src/Mods/Catmod/events/reRecruit/punkFemcat.js
@@ -78,10 +78,10 @@ App.Events.recPunkFemcat = class recPunkFemcat extends App.Events.BaseEvent {
 			slave.devotion = random(-55, -40);
 			slave.trust = random(-20, 10);
 			slave.earShape = "none";
-			slave.earT = "neko";
+			slave.earT = "cat";
 			slave.earTColor = slave.hColor;
 			slave.earImplant = 1;
-			slave.tailShape = "neko";
+			slave.tailShape = "cat";
 			slave.tailColor = slave.hColor;
 			slave.eye.left.pupil = "catlike";
 			slave.eye.right.pupil = "catlike";
diff --git a/src/Mods/Catmod/events/reRecruit/punkSissycat.js b/src/Mods/Catmod/events/reRecruit/punkSissycat.js
index be2f278af0e8c720150abe01e95b468f2c8a0b4a..23dbc235c0d0d729db9b6679ee9e7f84f69d4f3f 100644
--- a/src/Mods/Catmod/events/reRecruit/punkSissycat.js
+++ b/src/Mods/Catmod/events/reRecruit/punkSissycat.js
@@ -78,10 +78,10 @@ App.Events.recPunkSissycat = class recPunkSissycat extends App.Events.BaseEvent
 			slave.devotion = random(-55, -40);
 			slave.trust = random(-20, 10);
 			slave.earShape = "none";
-			slave.earT = "neko";
+			slave.earT = "cat";
 			slave.earTColor = slave.hColor;
 			slave.earImplant = 1;
-			slave.tailShape = "neko";
+			slave.tailShape = "cat";
 			slave.tailColor = slave.hColor;
 			slave.eye.left.pupil = "catlike";
 			slave.eye.right.pupil = "catlike";
diff --git a/src/Mods/Catmod/events/reRecruit/runawayCat.js b/src/Mods/Catmod/events/reRecruit/runawayCat.js
index 1526605e6eac5f34d4b15fe467901d630740cd85..9b887667d5271742192cd624232f37f19cb7bb37 100644
--- a/src/Mods/Catmod/events/reRecruit/runawayCat.js
+++ b/src/Mods/Catmod/events/reRecruit/runawayCat.js
@@ -81,10 +81,10 @@ App.Events.recRunawayCat = class recRunawayCat extends App.Events.BaseEvent {
 			slave.devotion = random(-25, -10);
 			slave.trust = random(-25, -10);
 			slave.earShape = "none";
-			slave.earT = "neko";
+			slave.earT = "cat";
 			slave.earTColor = slave.hColor;
 			slave.earImplant = 1;
-			slave.tailShape = "neko";
+			slave.tailShape = "cat";
 			slave.tailColor = slave.hColor;
 			slave.eye.left.pupil = "catlike";
 			slave.eye.right.pupil = "catlike";
diff --git a/src/Mods/Catmod/events/scheduled/vatcatboy.js b/src/Mods/Catmod/events/scheduled/vatcatboy.js
index b9fde211ffb82f82d94532c1cd902dd722035460..8f68775b6a28ed1b0b4c14a2c548ee4d1c9f14e3 100644
--- a/src/Mods/Catmod/events/scheduled/vatcatboy.js
+++ b/src/Mods/Catmod/events/scheduled/vatcatboy.js
@@ -23,10 +23,10 @@ App.Events.SEVatCatBoy = class SEVatCatBoy extends App.Events.BaseEvent {
 		slave.devotion = 20;
 		slave.trust = 30;
 		slave.earShape = "none";
-		slave.earT = "neko";
+		slave.earT = "cat";
 		slave.earTColor = slave.hColor;
 		slave.earImplant = 1;
-		slave.tailShape = "neko";
+		slave.tailShape = "cat";
 		slave.tailColor = slave.hColor;
 		slave.eye.left.pupil = "catlike";
 		slave.eye.right.pupil = "catlike";
diff --git a/src/Mods/Catmod/events/scheduled/vatcatgirl.js b/src/Mods/Catmod/events/scheduled/vatcatgirl.js
index 48d6e2e281a3790f565e6e9e220585a28a762179..97127918aeccc8550f9dd198e6a45e91f5376fd6 100644
--- a/src/Mods/Catmod/events/scheduled/vatcatgirl.js
+++ b/src/Mods/Catmod/events/scheduled/vatcatgirl.js
@@ -23,10 +23,10 @@ App.Events.SEVatCatGirl = class SEVatCatGirl extends App.Events.BaseEvent {
 		slave.trust = 30;
 		slave.earShape = "none";
 		slave.teeth = "fangs";
-		slave.earT = "neko";
+		slave.earT = "cat";
 		slave.earTColor = slave.hColor;
 		slave.earImplant = 1;
-		slave.tailShape = "neko";
+		slave.tailShape = "cat";
 		slave.tailColor = slave.hColor;
 		slave.eye.left.pupil = "catlike";
 		slave.eye.right.pupil = "catlike";
diff --git a/src/art/vector/VectorArtJS.js b/src/art/vector/VectorArtJS.js
index 507ed00a944e734503190c94e0e5c5bbe7b50e32..972d206f27b63d1c798f8ae116fa7d52212b5dda 100644
--- a/src/art/vector/VectorArtJS.js
+++ b/src/art/vector/VectorArtJS.js
@@ -2042,10 +2042,10 @@ App.Art.vectorArtElement = (function() {
 				break;
 		}
 		switch (slave.earT) {
-			case "neko":
+			case "cat":
 				svgQueue.add("Art_Vector_Cat_Ear_Back");
 				break;
-			case "kit":
+			case "fox":
 				svgQueue.add("Art_Vector_Fox_Ear_Back");
 				break;
 		}
diff --git a/src/data/backwardsCompatibility/updateSlaveObject.js b/src/data/backwardsCompatibility/updateSlaveObject.js
index 468e070aafe771687413089cda7e443890742383..a970e9b4f597f281e5069e2fb645fbb3ecb19a23 100644
--- a/src/data/backwardsCompatibility/updateSlaveObject.js
+++ b/src/data/backwardsCompatibility/updateSlaveObject.js
@@ -1020,14 +1020,39 @@ App.Update.Slave = function(slave, genepool = false) {
 	} else {
 		WombInit(slave);
 	}
-	if (V.releaseID < 1036) {
-		for (let pmw = 0; pmw < slave.womb.length; pmw++) {
-			if (slave.womb[pmw].genetics.mother !== slave.womb[pmw].motherID || slave.womb[pmw].genetics.father !== slave.womb[pmw].fatherID) {
-				slave.womb[pmw].genetics = generateGenetics(slave, slave.womb[pmw].fatherID, pmw);
+	if (V.releaseID <= 1141) {
+		const animalMap = new Map([
+			["neko", "cat"],
+			["inu", "dog"],
+			["kit", "fox"],
+			["ushi", "cow"],
+			["usagi", "rabbit"],
+			["risu", "squirrel"],
+			["uma", "horse"],
+		]);
+		const tail = animalMap.get(slave.tailShape);
+		if (tail) {
+			slave.tailShape = tail;
+		}
+		const earShape = animalMap.get(slave.earShape);
+		if (earShape) {
+			slave.earShape = earShape;
+		}
+		const earT = animalMap.get(slave.earT);
+		if (earT) {
+			slave.earT = earT;
+		}
+
+		if (V.releaseID < 1036) {
+			for (let pmw = 0; pmw < slave.womb.length; pmw++) {
+				if (slave.womb[pmw].genetics.mother !== slave.womb[pmw].motherID || slave.womb[pmw].genetics.father !== slave.womb[pmw].fatherID) {
+					slave.womb[pmw].genetics = generateGenetics(slave, slave.womb[pmw].fatherID, pmw);
+				}
 			}
 		}
 	}
 
+
 	if (!jsDef(slave.inbreedingCoeff)) {
 		slave.inbreedingCoeff = ibc.coeff(slave);
 		slave.womb.forEach(f => {
diff --git a/src/facilities/nursery/utils/nurseryUtils.js b/src/facilities/nursery/utils/nurseryUtils.js
index 616f13542dd39c5faecb42931acff435d3d1157c..249c1cf68b187eb24a13c1ad782d6117596658f8 100644
--- a/src/facilities/nursery/utils/nurseryUtils.js
+++ b/src/facilities/nursery/utils/nurseryUtils.js
@@ -178,7 +178,7 @@ App.Facilities.Nursery.infantToChild = function infantToChild(child) {
 	if (child.race === "catgirl") {
 		child.earImplant = 1;
 		child.earShape = "none";
-		child.earT = "neko";
+		child.earT = "cat";
 		child.earTColor = child.hColor;
 	}
 	child.earPiercing = 0;
@@ -344,7 +344,7 @@ App.Facilities.Nursery.infantToChild = function infantToChild(child) {
 		child.tailShape = "none";
 	} else {
 		child.tailColor = child.hColor;
-		child.tailShape = "neko";
+		child.tailShape = "cat";
 	}
 	child.tastes = 0;
 	child.teeth = "baby";
diff --git a/src/facilities/surgery/surgeryPassageFaceAndHair.js b/src/facilities/surgery/surgeryPassageFaceAndHair.js
index 5e1c69ab709dea8c2cf4d29cd79b2e29f481b748..94a72735b55ed9d95fd7fa373081f5f07e6747ee 100644
--- a/src/facilities/surgery/surgeryPassageFaceAndHair.js
+++ b/src/facilities/surgery/surgeryPassageFaceAndHair.js
@@ -397,16 +397,16 @@ App.UI.surgeryPassageHairAndFace = function(slave, refreshParent, cheat = false)
 				} else {
 					r.push(`a pair of ears grafted to the top of ${his} head.`);
 				}
-			} else if (slave.earT === "neko") {
-				r.push(`a pair of cat ears adorning ${his} head.`);
-			} else if (slave.earT === "inu") {
-				r.push(`a pair of dog ears adorning ${his} head.`);
-			} else if (slave.earT === "kit") {
-				r.push(`a pair of fox ears adorning ${his} head.`);
+			} else if (slave.earT === "cat") {
+				r.push(`a pair of ${App.Utils.translate("cat")} ears adorning ${his} head.`);
+			} else if (slave.earT === "dog") {
+				r.push(`a pair of ${App.Utils.translate("dog")} ears adorning ${his} head.`);
+			} else if (slave.earT === "fox") {
+				r.push(`a pair of ${App.Utils.translate("fox")} ears adorning ${his} head.`);
 			} else if (slave.earT === "tanuki") {
 				r.push(`a pair of tanuki ears adorning ${his} head.`);
-			} else if (slave.earT === "usagi") {
-				r.push(`a pair of rabbit ears adorning ${his} head.`);
+			} else if (slave.earT === "rabbit") {
+				r.push(`a pair of ${App.Utils.translate("rabbit")} ears adorning ${his} head.`);
 			} else {
 				r.push(`You done goofed.`);
 				r.push(`<span class="note">Report This</span>`);
@@ -420,29 +420,29 @@ App.UI.surgeryPassageHairAndFace = function(slave, refreshParent, cheat = false)
 							new App.Medicine.Surgery.Procedures.RemoveTopEars(slave),
 							refresh, cheat));
 					}
-					if (slave.earT !== "neko") {
+					if (slave.earT !== "cat") {
 						linkArray.push(App.Medicine.Surgery.makeLink(
-							new App.Medicine.Surgery.Procedures.TopEarReshape(slave, "cat", "neko"),
+							new App.Medicine.Surgery.Procedures.TopEarReshape(slave, "cat"),
 							refresh, cheat));
 					}
-					if (slave.earT !== "inu") {
+					if (slave.earT !== "dog") {
 						linkArray.push(App.Medicine.Surgery.makeLink(
-							new App.Medicine.Surgery.Procedures.TopEarReshape(slave, "dog", "inu"),
+							new App.Medicine.Surgery.Procedures.TopEarReshape(slave, "dog"),
 							refresh, cheat));
 					}
-					if (slave.earT !== "kit") {
+					if (slave.earT !== "fox") {
 						linkArray.push(App.Medicine.Surgery.makeLink(
-							new App.Medicine.Surgery.Procedures.TopEarReshape(slave, "fox", "kit"),
+							new App.Medicine.Surgery.Procedures.TopEarReshape(slave, "fox"),
 							refresh, cheat));
 					}
 					if (slave.earT !== "tanuki") {
 						linkArray.push(App.Medicine.Surgery.makeLink(
-							new App.Medicine.Surgery.Procedures.TopEarReshape(slave, "tanuki", "tanuki"),
+							new App.Medicine.Surgery.Procedures.TopEarReshape(slave, "tanuki"),
 							refresh, cheat));
 					}
-					if (slave.earT !== "usagi") {
+					if (slave.earT !== "rabbit") {
 						linkArray.push(App.Medicine.Surgery.makeLink(
-							new App.Medicine.Surgery.Procedures.TopEarReshape(slave, "rabbit", "usagi"),
+							new App.Medicine.Surgery.Procedures.TopEarReshape(slave, "rabbit"),
 							refresh, cheat));
 					}
 					if (slave.earTColor === "hairless") {
diff --git a/src/interaction/prostheticConfig.js b/src/interaction/prostheticConfig.js
index 2515fba7e7edf4564e865f8663918f590caaa307..f30399b22fab2778a4ec79ec1d64fe4b85bed78d 100644
--- a/src/interaction/prostheticConfig.js
+++ b/src/interaction/prostheticConfig.js
@@ -561,23 +561,23 @@ App.UI.prostheticsConfigPassage = function() {
 			V.nextLink = "Prosthetics Configuration";
 			App.UI.DOM.appendNewElement("div", node, `Attaching ${his} tail is a simple procedure, you simply push the connector into a socket, right where ${his} tailbone ends, until the lock engages.`);
 			r.push(`When you are done, ${he} looks back and`);
-			if (slave.tailShape === "neko") {
+			if (slave.tailShape === "cat") {
 				r.push(`sways ${his} tail side to side enigmatically.`);
-			} else if (slave.tailShape === "inu") {
+			} else if (slave.tailShape === "dog") {
 				r.push(`wags ${his} tail side to side energetically.`);
-			} else if (slave.tailShape === "kit") {
+			} else if (slave.tailShape === "fox") {
 				r.push(`slowly sways ${his} tail feeling the soft fur brush against ${his} skin.`);
 			} else if (slave.tailShape === "kitsune") {
 				r.push(`slowly sways ${his} tails luxuriating in the incredibly soft, fluffy fur brushing against ${his} skin.`);
 			} else if (slave.tailShape === "tanuki") {
 				r.push(`admires ${his} long, thick fluffy tail.`);
-			} else if (slave.tailShape === "ushi") {
+			} else if (slave.tailShape === "cow") {
 				r.push(`swats ${himself} playfully.`);
-			} else if (slave.tailShape === "usagi") {
+			} else if (slave.tailShape === "rabbit") {
 				r.push(`wiggles ${his} little tail a bit.`);
-			} else if (slave.tailShape === "risu") {
+			} else if (slave.tailShape === "squirrel") {
 				r.push(`admires ${his} the size of ${his} fluffy tail.`);
-			} else if (slave.tailShape === "uma") {
+			} else if (slave.tailShape === "horse") {
 				r.push(`sways ${his} tail back and forth.`);
 			} else if (slave.tail === "combat") {
 				r.push(`experimentally whips the long tail side to side then takes aim at a prepared fruit, lashes out with blinding speed and smiles as it explodes into chunks.`);
diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js
index 49427dc95f0210cbe70ba6b88113e90c16db3901..82683585a5636ad5b3e6b1ce9b8a6d4d6ac360ce 100644
--- a/src/js/SlaveState.js
+++ b/src/js/SlaveState.js
@@ -729,7 +729,7 @@ App.Entity.SlaveState = class SlaveState {
 		 * @type {FC.EarShape} */
 		this.earShape = "normal";
 		/** type of kemonomimi ears if any
-		 * "neko", "inu", "kit", "tanuki", "usagi"
+		 * "cat", "dog", "fox", "tanuki", "cow"
 		 * @type {FC.EarTypeKemonomimi}*/
 		this.earT = "none";
 		/** kemonomimi ear color
@@ -759,7 +759,7 @@ App.Entity.SlaveState = class SlaveState {
 		 */
 		this.PTail = 0;
 		/** the current shape of their modular tail
-		 * "none", "neko", "inu", "kit", "kitsune", "tanuki", "ushi", "usagi", "risu", "uma"
+		 * "none", "cat", "dog", "fox", "kitsune", "tanuki", "cow", "rabbit", "squirrel", "horse"
 		 * @type {FC.TailShape} */
 		this.tailShape = "none";
 		/** tail color */
diff --git a/src/js/utilsMisc.js b/src/js/utilsMisc.js
index 0163e91779ada368b3fd2c2266e13afe92324029..785c43193716c604a335a3edbca188d13b828ce5 100644
--- a/src/js/utilsMisc.js
+++ b/src/js/utilsMisc.js
@@ -169,3 +169,13 @@ globalThis.asSlave = function(human) {
 	}
 	return /** @type {App.Entity.SlaveState} */(human);
 };
+
+/**
+ * @param {string} englishWord
+ * @returns {string}
+ */
+App.Utils.translate = function(englishWord) {
+	return App.Data.dictionary[englishWord] && App.Data.dictionary[englishWord].hasOwnProperty(V.language)
+		? App.Data.dictionary[englishWord][V.language]
+		: englishWord;
+};
diff --git a/src/npc/descriptions/butt/butt.js b/src/npc/descriptions/butt/butt.js
index a2d34410c752eaf8fa965f8f876a69ed9c1efe6a..837a26cb1e7879c6655dac712b86b6e3b5f27a10 100644
--- a/src/npc/descriptions/butt/butt.js
+++ b/src/npc/descriptions/butt/butt.js
@@ -1270,24 +1270,24 @@ App.Desc.butt = function(slave, {market, eventDescription} = {}) {
 		}
 	}
 
-	if (slave.tailShape === "neko") {
-		r.push(`${He} has a long, slender, ${slave.tailColor} cat tail which tends to sway side to side when ${he} is focused on a task.`);
-	} else if (slave.tailShape === "inu") {
-		r.push(`${He} has a bushy, ${slave.tailColor} dog tail which tends to wag energetically when ${he} gets exited.`);
-	} else if (slave.tailShape === "kit") {
-		r.push(`${He} has a soft, fluffy, ${slave.tailColor} fox tail.`);
+	if (slave.tailShape === "cat") {
+		r.push(`${He} has a long, slender, ${slave.tailColor} ${App.Utils.translate("cat")} tail which tends to sway side to side when ${he} is focused on a task.`);
+	} else if (slave.tailShape === "dog") {
+		r.push(`${He} has a bushy, ${slave.tailColor} ${App.Utils.translate("dog")} tail which tends to wag energetically when ${he} gets exited.`);
+	} else if (slave.tailShape === "fox") {
+		r.push(`${He} has a soft, fluffy, ${slave.tailColor} ${App.Utils.translate("fox")} tail.`);
 	} else if (slave.tailShape === "kitsune") {
 		r.push(`${He} has three incredibly soft, fluffy, ${slave.tailColor} fox tails; they feel heavenly to the touch.`);
 	} else if (slave.tailShape === "tanuki") {
 		r.push(`${He} has a long, fluffy, ${slave.tailColor} tanuki tail with a dark stripe running down the middle.`);
-	} else if (slave.tailShape === "ushi") {
-		r.push(`${He} has a long, ${slave.tailColor} cow tail; it has a small tuft of hair at the end and tends to swat at things absentmindedly.`);
-	} else if (slave.tailShape === "usagi") {
-		r.push(`${He} has a short and fluffy ${slave.tailColor} rabbit tail.`);
-	} else if (slave.tailShape === "risu") {
-		r.push(`${He} has a big and bushy ${slave.tailColor} squirrel tail.`);
-	} else if (slave.tailShape === "uma") {
-		r.push(`${He} has a long horse tail consisting of consisting of ${slave.tailColor} hair.`);
+	} else if (slave.tailShape === "cow") {
+		r.push(`${He} has a long, ${slave.tailColor} ${App.Utils.translate("cow")} tail; it has a small tuft of hair at the end and tends to swat at things absentmindedly.`);
+	} else if (slave.tailShape === "rabbit") {
+		r.push(`${He} has a short and fluffy ${slave.tailColor} ${App.Utils.translate("rabbit")} tail.`);
+	} else if (slave.tailShape === "squirrel") {
+		r.push(`${He} has a big and bushy ${slave.tailColor} ${App.Utils.translate("squirrel")} tail.`);
+	} else if (slave.tailShape === "horse") {
+		r.push(`${He} has a long ${App.Utils.translate("horse")} tail consisting of consisting of ${slave.tailColor} hair.`);
 	} else if (slave.tail === "combat") {
 		r.push(`${He} has a very long ${slave.tailColor} metallic tail that can lash out, constrict, and deploy razor sharp spikes on command.`);
 	} else if (slave.tail === "sex") {
diff --git a/src/npc/descriptions/ears.js b/src/npc/descriptions/ears.js
index d0a1d0a3096aba94291624706288ff83d0e69162..6a0cbb48b44147019d164ae6ec6b97fc1613ae96 100644
--- a/src/npc/descriptions/ears.js
+++ b/src/npc/descriptions/ears.js
@@ -38,12 +38,12 @@ App.Desc.ears = function(slave) {
 		r.push(`${His} small, ${either("elfin", "leaf-shaped", "pointed")} ears are quite cute and give ${him} an exotic appearance.`);
 	} else if (slave.earShape === "elven") {
 		r.push(`${He} has long, thin elven ears that ${either(`tend to droop when ${he} is relaxed or sad`, `tend to waggle up and down when ${he} is excited`, `twitch at the slightest touch`)}.`);
-	} else if (slave.earShape === "ushi") {
+	} else if (slave.earShape === "cow") {
 		r.push(`${He} has long, floppy cow ears.`); // that ${either(`tend to droop when ${he} is relaxed or sad`, `tend waggle up and down when ${he} is excited`, `twitch at the slightest touch`)}. These don't make sense for the most part.
 	}
 
-	if (slave.earT === "neko") {
-		r.push(`${He} has cute, ${slave.earTColor} cat ears on ${his} head; they`);
+	if (slave.earT === "cat") {
+		r.push(`${He} has cute, ${slave.earTColor} ${App.Utils.translate("cat")} ears on ${his} head; they`);
 		if (slave.earImplant === 1) {
 			r.push(`perk up at`);
 			if (slave.devotion > 20) {
@@ -53,8 +53,8 @@ App.Desc.ears = function(slave) {
 			}
 		}
 		r.push(`${either(`tend to droop when ${he} is relaxed or sad`, `twitch at the slightest touch`)}.`);
-	} else if (slave.earT === "inu") {
-		r.push(`${He} has cute, ${slave.earTColor} dog ears on ${his} head; they`);
+	} else if (slave.earT === "dog") {
+		r.push(`${He} has cute, ${slave.earTColor} ${App.Utils.translate("dog")} ears on ${his} head; they`);
 		if (slave.earImplant === 1) {
 			r.push(`perk up at`);
 			if (slave.devotion > 50) {
@@ -64,8 +64,8 @@ App.Desc.ears = function(slave) {
 			}
 		}
 		r.push(`${either(`tend to droop when ${he} is relaxed or sad`, `twitch at the slightest touch`)}.`);
-	} else if (slave.earT === "kit") {
-		r.push(`${He} has elegant, ${slave.earTColor} fox ears on ${his} head; they`);
+	} else if (slave.earT === "fox") {
+		r.push(`${He} has elegant, ${slave.earTColor} ${App.Utils.translate("fox")} ears on ${his} head; they`);
 		if (slave.earImplant === 1) {
 			r.push(`perk up at`);
 			if (slave.devotion > 50) {
@@ -86,8 +86,8 @@ App.Desc.ears = function(slave) {
 			}
 		}
 		r.push(`${either(`tend to droop when ${he} is relaxed or sad`, `twitch at the slightest touch`)}.`);
-	} else if (slave.earT === "usagi") {
-		r.push(`${He} has long, ${slave.earTColor}, fluffy rabbit ears on ${his} head; they`);
+	} else if (slave.earT === "rabbit") {
+		r.push(`${He} has long, ${slave.earTColor}, fluffy ${App.Utils.translate("rabbit")} ears on ${his} head; they`);
 		if (slave.earImplant === 1) {
 			r.push(`perk up at`);
 			if (slave.devotion > 50) {
diff --git a/src/npc/generate/generateGenetics.js b/src/npc/generate/generateGenetics.js
index 5479ccf07f51610dc39d18abf8fd06bddf6a7032..d4d9417c87ee3760c4a05327b97f2a1d794c4140 100644
--- a/src/npc/generate/generateGenetics.js
+++ b/src/npc/generate/generateGenetics.js
@@ -1084,9 +1084,9 @@ globalThis.generateChild = function(mother, ovum, incubator = false) {
 		} else {
 			child.earImplant = 1;
 			child.earShape = "none";
-			child.earT = "neko";
+			child.earT = "cat";
 			child.earTColor = child.hColor;
-			child.tailShape = "neko";
+			child.tailShape = "cat";
 			child.tailColor = child.hColor;
 		}
 		if (genes.faceShape !== undefined) {
@@ -1153,9 +1153,9 @@ globalThis.generateChild = function(mother, ovum, incubator = false) {
 		} else {
 			child.earImplant = 1;
 			child.earShape = "none";
-			child.earT = "neko";
+			child.earT = "cat";
 			child.earTColor = child.hColor;
-			child.tailShape = "neko";
+			child.tailShape = "cat";
 			child.tailColor = child.hColor;
 		}
 		child.spermY = genes.spermY;
diff --git a/src/npc/generate/generateNewSlaveJS.js b/src/npc/generate/generateNewSlaveJS.js
index 1d57f5dd45f5c97d8dd32fc963f0438a36479a94..9a3c477f74ac669a608036124b06e0da6aca005e 100644
--- a/src/npc/generate/generateNewSlaveJS.js
+++ b/src/npc/generate/generateNewSlaveJS.js
@@ -1559,9 +1559,9 @@ globalThis.GenerateNewSlave = (function() {
 				slave.faceShape = "feline";
 				eyeColor(["light grey", "blue", "blue", "brown", "brown", "brown", "green"]);
 				// nonfunctional //
-				slave.earT = "neko";
+				slave.earT = "cat";
 				slave.earImplant = 1;
-				slave.tailShape = "neko";
+				slave.tailShape = "cat";
 				slave.tailColor = slave.hColor;
 				slave.eye.right.pupil = "catlike";
 				slave.eye.left.pupil = "catlike";
diff --git a/src/npc/startingGirls/startingGirls.js b/src/npc/startingGirls/startingGirls.js
index de37d45c7e061af9fa63143be5e5f2a6362f8a4d..389d06e49d30dc0b9de0211c29e31217505ae903 100644
--- a/src/npc/startingGirls/startingGirls.js
+++ b/src/npc/startingGirls/startingGirls.js
@@ -826,15 +826,15 @@ App.StartingGirls.physical = function(slave, cheat = false) {
 			options.addOption("Tail shape", "tailShape", slave)
 				.addValueList([
 					["None", "none"],
-					["Cat", "neko"],
-					["Dog", "inu"],
-					["Fox", "kit"],
+					["Cat", "cat"],
+					["Dog", "dog"],
+					["Fox", "fox"],
 					["3 Tailed fox", "kitsune"],
 					["Tanuki", "tanuki"],
-					["Bovine", "ushi"],
-					["Rabbit", "usagi"],
-					["Squirrel", "risu"],
-					["Horse", "uma"],
+					["Bovine", "cow"],
+					["Rabbit", "rabbit"],
+					["Squirrel", "squirrel"],
+					["Horse", "horse"],
 				]);
 		}
 	}
diff --git a/src/player/js/PlayerState.js b/src/player/js/PlayerState.js
index aad6102cbb8c1368de648799396ed559ca5bc7e0..3720a7b32fcd50aa1f151e3184cff83c745906aa 100644
--- a/src/player/js/PlayerState.js
+++ b/src/player/js/PlayerState.js
@@ -428,7 +428,7 @@ App.Entity.PlayerState = class PlayerState {
 		 * "none", "damaged", "normal", "pointy", "elven", "ushi" */
 		this.earShape = "normal";
 		/** type of kemonomimi ears if any
-		 * "neko", "inu", "kit", "tanuki", "usagi" */
+		 * "cat", "dog", "fox", "tanuki", "cow" */
 		this.earT = "none";
 		/** kemonomimi ear color
 		 * "hairless" */
@@ -454,7 +454,7 @@ App.Entity.PlayerState = class PlayerState {
 		 */
 		this.PTail = 0;
 		/** the current shape of your modular tail
-		 * "none", "neko", "inu", "kit", "kitsune", "tanuki", "ushi", "usagi", "risu", "uma" */
+		 * "none", "cat", "dog", "fox", "kitsune", "tanuki", "cow", "rabbit", "squirrel", "horse"
 		this.tailShape = "none";
 		/** tail color */
 		this.tailColor = "none";