When you declare a SPField in CAML, you can add the localization in the code:
<Field
ID="{57258F13-19B2-4A97-B244-090845B5C4AB}"
Type="Text"
Name="Partner"
DisplayName="$Resources:MyProject,Partner"
Group="MyProject Columns"
StaticName="Partner"/>
However, some of the fields have to be created in code (e.g. External Data Columns). For these I also want localization. I found this solution, but I wonder if there's a cleaner way to do this.