============================== HOW-TO Localize pRSSreader ============================== Note: If something is unclear or you are in doubts, let me know (pda@jasnapaka.com) and I will update this document. ------------------------------- Starting a new localization ------------------------------- Steps: 1. Go to http://pda.jasnapaka.com/prssr/localizations/. 2. Get the english full source development version (F). 3. Unzip it. 4. Rename all english.rc2 files to .rc2, where is the language you are translating to. 5. Open each file in your favorite editor. 6. Follow localization instructions (below) and translate the files. 7. Pack the translated files (ZIP is ok), keep the directory structure. 8. Send the archive as attachment to me (pda@jasnapaka.com). Fill in the subject field with something meaningful (for example 'Czech localization for pRSSreader ' is good). ---------------------------------- Updating existing localization ---------------------------------- Steps: 1. Go to http://pda.jasnapaka.com/prssr/localizations/. 2. Get the diff (D) of new version (see Understanding diff-files section for more info). 3. Translate it. 4. Send it to me. 5. I will start a development version for you, e.g. I will create a full source version (F). 6. Further updates will be made on this new full source development version. ----------------------------- Localization instructions ----------------------------- The rc2 file is source code which is used in compiling. It is a plain text file. It is important to preserve its structure and modify it only on necessary places. There are the following types of resources with you have to translate: - Dialogs - Menus - Strings (String tables) Keep other sections of the file untouched. Dialogs ----------- Dialogs are most difficult to localize, because there is only limited space for the text. * Structure of Dialog * Example: IDD_OPT_ADVANCED DIALOG DISCARDABLE 0, 0, 137, 154 STYLE DS_MODALFRAME | WS_CHILD | WS_CAPTION CAPTION "Advanced" FONT 8, "System" BEGIN CONTROL "Left/right buttons move to the previous/next unread item", IDC_MOVETONEW,"Button",BS_AUTOCHECKBOX | BS_TOP | BS_MULTILINE | WS_TABSTOP,4,31,129,18 LTEXT "Read options",IDC_READOPTIONS_LBL,4,4,129,12 CONTROL "Show banner with site name",IDC_SHOW_BANNER,"Button", BS_AUTOCHECKBOX | WS_TABSTOP,4,20,106,10 CONTROL "Clear error log before update",IDC_CLEAR_ERRORLOG, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,4,89,129,10 CONTROL "Mark new items as unread before update", IDC_MARKNEWUNREAD,"Button",BS_AUTOCHECKBOX | BS_LEFT | BS_TOP | BS_MULTILINE | WS_TABSTOP,4,100,129,18 LTEXT "Update options",IDC_UPDATEOPTIONS_LBL,4,73,129,12 END Translate the text in quotes (") on the row with CAPTION. Then text in quotes (") right after CONTROL, LTEXT, PUSHBUTTON, DEFPUSHBUTTON. Do NOT modify the text further on the row. IMPORTATNT: If you will see this code: CONTROL "Spin1",IDC_HEIGHT_SPIN,"msctls_updown32", or this code: CONTROL "List1",IDC_ERRORS,"SysListView32",LVS_REPORT | or this code: CONTROL "Tree1",IDC_CACHEITEMS,"SysTreeView32",TVS_HASBUTTONS | DO NOT translate the Spin1, List1, Tree1 text. Menus --------- Menus are easy to translate. You are not limited by the space. But be aware that the PDA display is small, thus the texts must not be too long. * Structure of Menu * Example: IDR_CACHE MENU DISCARDABLE BEGIN POPUP "Cache" BEGIN MENUITEM "Cache Online Content", ID_CACHE_ONLINECONTENT MENUITEM SEPARATOR MENUITEM "Cache Enclosures", ID_CACHE_ENCLOSURES MENUITEM "Delete Enclosures", ID_CACHE_DELETEENCLOSURES END END Translate the texts in quotes ("). If you see & (ampersand) in the text, it means that the next letter will be underlined (keyboard shortcut - remember, there are people with HW keyboards, they will appreciate it). Strings ----------- Strings are very easy to localize, you are not limited by the space at most cases. IMPORTANT: Do NOT translate the IDR_MAINFRAME string - it is used internally by pRSSreader and must remain unchanged. * Structure of String Table * Example: STRINGTABLE DISCARDABLE BEGIN IDS_HTTP_AUTH_PROMPT "Enter user name and password for '%s' at '%s':" IDS_AUTHORIZATION_REQUIRED "Authorization required" ... END Translate the texts in quotes ("). Note the %s, it is format string which says that this part of the text will be replaced by another text according to the following: %s is for texts %d is for for numbers (decimals), etc. If you are in doubts, let me know and I will update this document. Others ---------- - On some places, you can see texts that are not visible in pRSSreader. Those texts are here ready for future versions. You can translate them and prepare your localization file for the next versions. - Modify the second row to match the language you translate to. Example: // English (U.S.) resources ---------------------------- Understanding diff-files ---------------------------- Diff-file shows differences between two versions of one file. Let start with an exmaple: --- res-1.3.0/english.rc2 Thu May 04 15:36:39 2006 +++ res-1.3.1/english.rc2 Thu May 04 15:30:56 2006 @@ -38,13 +38,12 @@ IDD_VERIFY DIALOG DISCARDABLE 0, 0, 136, 151 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Add Site" +CAPTION "Online" FONT 8, "System" BEGIN CONTROL "Enter the full URL of a site to subscribe to:", IDC_STATIC,"Static",SS_LEFT | WS_GROUP,4,3,130,20 - EDITTEXT IDC_URL,5,23,100,12,ES_AUTOHSCROLL - DEFPUSHBUTTON "Add",IDC_ADD,109,23,25,12 + EDITTEXT IDC_URL,5,23,125,12,ES_AUTOHSCROLL LTEXT "Please wait a moment while pRSSreader verifies the new site.", IDC_VERIFY_LBL,4,42,129,18 LTEXT "Status:",IDC_STATUS_LBL,4,70,24,10 @@ -52,6 +51,17 @@ LTEXT "Error",IDC_ERROR,29,80,106,31,NOT WS_VISIBLE END Explanation: * --- res-1.3.0/english.rc2 Thu May 04 15:36:39 2006 - means that lines starting with - belong to the res-1.3.0/english.rc2 * +++ res-1.3.1/english.rc2 Thu May 04 15:30:56 2006 - means that lines starting with + belong to the res-1.3.1/english.rc2 * @@ -38,13 +38,12 @@ - this specifies the position in the files (to not touch this lines, they are important for me to make a patch) * lines that start with - say what was removed (you can ignore those lines in most cases) * lines that start with + say what was added (THOSE LINES ARE FOR YOU, TRANSLATE THEM :)) BUT: be carefull, for example if you see: - EDITTEXT IDC_URL,5,23,100,12,ES_AUTOHSCROLL - DEFPUSHBUTTON "Add",IDC_ADD,109,23,25,12 + EDITTEXT IDC_URL,5,23,125,12,ES_AUTOHSCROLL First two lines were removed, the last was added, but there is nothing to translate on the third line -> you can ignore this. * if you are in doubts, ask me . ----------- Testing ----------- After translating, I will build a test version to allow you to see the result and make corrections. Keep in mind, that my time is limited and the build will not be immediately available, but I'll make it ASAP. When making corrections, ALWAYS use the files from http://pda.jasnapaka.com/localizations/ - they are always up to date. Test versions will be available on http://pda.jasnapaka.com/localizations/ marked with (T). ------------------- Official builds ------------------- It would be fine to have all localizations ready before the official release (for ANY version of pRSSreader). Deadline for official release will be announced. Send the localization before this date. The sooner you send it, the more correcting iterations you can do. Before the official release, the localized file must be ready. Be sure you have enough time to do it. pRSSreader is developing in time. This means that if you start maintaining the localization file, I want you to do this all the time pRSSreader will develop. Do not make one-shot localization. Of course you can stop maintaining the file, but you have to find a replacement for yourself to keep the localization alive. Those are crucial aspects of developing/localizing - to survive in time. -- David