<InternalName>GasGiantColony</InternalName>
<DisplayName>Precursor Gas Giant Colony</DisplayName>
<Description>Sophisticated equipment rests in a stable orbit around this gas giant, allowing for a simple colony.</Description>
You are using literal text, while the program expects reference names.
It should be something like this:
<InternalName>GasGiantColony</InternalName>
<DisplayName>GasGiantColony_Name</DisplayName>
<Description>GasGiantColony_Dec</Description>
And then in the PlanetTraitText.xml these strings should be declared like this (using here the default DesertWorldIcon):
<StringTable>
<Label>GasGiantColony_Name</Label>
<String>[ICON=DesertWorldIcon] Precursor Gas Giant Colony</String>
</StringTable>
<StringTable>
<Label>GasGiantColony_Dec</Label>
<String>Sophisticated equipment rests in a stable orbit around this gas giant, allowing for a simple colony.</String>
</StringTable>
Yeh! thats what I've been doing too, but you don't have to for the text. Same as with factionDefs - Descriptions etc.
I think if you want to use new Icons for your planet traits though, then you have to do it as you describe, but it doesn't work currently, so there is no point. Well I can't get the Icons to work yet anyway, and the current vanilla Icon texture file names don't match. It seems they are hooked up elsewhere. ...Edit; yes they are. See edit below.
Edit: Just worked out how the Icons are hooked up
If you want a unique Icon for your Unique PlanetTrait. You do need to put in your text for <DisplayName>"ReplaceWithYourStuff_Name</Displayname> to a PlanetTraitText.xml as "Thecw" has described above.
For intance; In the UniqueName_PlanetTraitText.xml
<StringTable>
<Label>GasGiantColony_Name</Label>
<String>[ICON=UniqueName_Icon] Precursor Gas Giant Colony</String>
</StringTable>
<StringTable>
<Label>GasGiantColony_Dec</Label>
<String>Sophisticated equipment rests in a stable orbit around this gas giant, allowing for a simple colony.</String>
</StringTable>
You will also need to create a UniqueName_FactionAssets.xml and put it in your mods "Core" folder
Then add to it;
<Asset>
<Tag>UniqueName_Icon</Tag>
<Filename>unique_name.png</Filename>
</Asset>
Delete all other Assets that are already in the game.
"unique_name.png" Is your custom icon image for the trait and is put into Gfx/Icons/Stats folder.