I second the Locale::Maketext suggestion. I can also add that you really should:
- Separate your strings and your source files. Keep the strings in a separate file.
- Use Unicode everywhere. Save your source files, your template files and your strings files as Unicode. Make it UTF-8, unless you have a very good reason to use any other representation. see perlunicode.
- Even though it's a good idea to save your source files as UTF-8, it's even more important to keep your strings separately - and in UTF-8. I'm repeating myself, but it WILL save you a lot of trouble.