Here are some tips and tricks:
All strings should start and end with double quotes and should be separated with comma (,),
not a semicolon or any other sign
“Default line”,“Translated line”
It can be very handy to alternate the default theme strings with the help of app/design/frontend/<package>/<theme>/locale/en_US/translate.csv file
“My Cart”,“My Basket”
“My Account”,“Your Account”
All the lines are case-sensitive and the first message must be copied exactly as it appears in the default en_US version.
For example, if in en_US locale the string looks like that
“%s Item(s)”,“%s Item(s)”
But in your translate.csv you would try
“%s Items”,“%s Product(s)”
It simply wouldn’t work, so be careful with that.
Some strings can contain %1$s %s %d etc., and if you want to have the correct strings in your translations these entries should be also kept in the translated string
“%s Item(s)”,“%s Product(s)”
Your text editor should be able to save an edited CSV file in UTF-8 encoding (), especially when you translate using different alphabets. If you have your translations in Excel, you need to convert your file to UTF-8 (find more info on how to convert Excel to CSV with UTF-8 encoding StackOverflow).
If you need to have double quotes in your string they need to be escaped by using two double quotes
“String”,“ ”” – this is how double quotation mark looks like”
There are some strings that can be presented in a few extensions simultaneously. For example, in “Add To Cart” strings can be found in both Mage_Catalog.csv and Mage_Checkout.csv. What if you would like to translate/change them differently? Normal way would be to edit .phtml files manually, but with translate.csv you can solve this issue more elegantly – just put your extension name as a prefix and you will be able to translate them separately.
“Mage_Catalog::Add to Cart”,“Add to Basket”
“Mage_Checkout::Add to Cart”,“Add to my shopping cart”
Last but not least – remember to refresh all caches after any changes of your translate.csv file!