The Windows frontend should now be completely internationalized. If you are a speaker of another language, we would love for you to make a locale file with the translations of all the strings in the program.
You will need the latest beta available here: http://www.crosswire.org/sword/ALPHAcckswwlkrfre22034820285912/alpha/sword-1.5.4betaK.zip inside you will find a directory: uilocales.d in this directory is a sample (and still incomplete) german local, de.conf You can use this as a starting point to copy and change the translation strings for your language. Since the sample de.conf is still incomplete, below, you will find the actual code in the program that does the string substitutions. You don't need to understand what it does, only look for the _tr() macro and translate all the strings you find contained therein. Duplicates may exist, e.g. _tr("OK"). These only need to be included in the locale file once. There are 2 bitmaps that we use for back and search buttons. You may override these bitmaps with the locale entries, e.g. BackBtnImage=back_de.bmp SearchBtnImage=search_de.bmp I've included our english versions that you might be able to use for reference (or to just paint over). If you're not good at graphics, don't feel the bitmaps are manditory. We'd still like to have your translations. Looking forward to all of your contributions! Hoping many more people in many other countries will be brought the saving knowledge in the Gospel of our Lord! Thanks for your partnership in this ministry, -Troy. _______________________ Locale code: tmp = _tr("BackBtnImage"); if (strcmp("BackBtnImage", tmp)) { pic->LoadFromFile(tmp); bitmap = pic->Bitmap; } else bitmap = BackBtnImage->Picture->Bitmap; TColor transColor = bitmap->Canvas->Pixels[0][0]; ImageList1->AddMasked(bitmap, transColor); tmp = _tr("SearchBtnImage"); if (strcmp("SearchBtnImage", tmp)) { pic->LoadFromFile(tmp); bitmap = pic->Bitmap; } else bitmap = SearchBtnImage->Picture->Bitmap; transColor = bitmap->Canvas->Pixels[0][0]; ImageList1->AddMasked(bitmap, transColor); bitmap = BookmarkBtnImage->Picture->Bitmap; transColor = bitmap->Canvas->Pixels[0][0]; ImageList2->AddMasked(bitmap, transColor); delete pic; // MainForm File1->Caption = _tr("&File"); SaveLayout1->Caption = _tr("S&ave Layout"); Exit1->Caption = _tr("E&xit"); Edit1->Caption = _tr("&Edit"); Copy1->Caption = _tr("&Copy"); Copy2->Caption = _tr("&Copy"); Copy3->Caption = _tr("&Copy"); Copy4->Caption = _tr("&Copy"); CopyasBGreekTransliteration1->Caption = _tr("Copy as &B-Greek Transliteration"); MenuItem1->Caption = _tr("Dictionary Lookup"); Copy4->Caption = _tr("&Copy"); Copy4->Caption = _tr("&Copy"); Copy4->Caption = _tr("&Copy"); Options2->Caption = _tr("Options"); Options1->Caption = _tr("&Preferences..."); Search1->Caption = _tr("&Search"); NewSearchWindow1->Caption = _tr("&New Search Window"); Tools1->Caption = _tr("&Tools"); InstallManager1->Caption = _tr("Install Manager"); Help1->Caption = _tr("&Help"); Contents1->Caption = _tr("Contents"); DevotionaloftheDay1->Caption = _tr("Devotional of the Day"); About1->Caption = _tr("&About"); Bookmarkbtn->Caption = _tr("Bookmark"); DictionaryLookup1->Caption = _tr("Dictionary Lookup"); DictionaryLookup2->Caption = _tr("Dictionary Lookup"); EditEntry1->Caption = _tr("&Edit Entry"); DeleteEntry1->Caption = _tr("&Delete Entry"); LinktoVerse1->Caption = _tr("Link to Comment for Verse..."); AddBookmark1->Caption = _tr("&Add Bookmark"); EditBookmarks1->Caption = _tr("&Edit Bookmarks / Tree View..."); HideShowModules1->Caption = _tr("Hide / Show Modules"); // AboutBox AboutBox->Caption = _tr("About The SWORD Project"); AboutBox->OKButton->Caption = _tr("OK"); // bookmarkForm bookmarkForm->Caption = _tr("Bookmarks"); // DevOfTheDay2 DevOfTheDay2->Caption = _tr("Devotion for Today"); DevOfTheDay2->ckShowTip->Caption = _tr("Show Devotional at Startup"); DevOfTheDay2->btnOK->Caption = _tr("&Close"); // EditEntryForm EditEntryForm->Caption = _tr("Edit Entry"); EditEntryForm->Label1->Caption = _tr("Font Size:"); // ModInstForm ModInstFrm->Caption = _tr("Found New Module..."); ModInstFrm->OkBtn->Caption = _tr("OK"); // ModVisForm ModVisForm->Caption = _tr("Check Modules To Show As Tabs"); ModVisForm->modList->Columns->Items[0]->Caption = _tr("Module"); ModVisForm->modList->Columns->Items[1]->Caption = _tr("Description"); ModVisForm->OkBtn->Caption = _tr("OK"); ModVisForm->CancelBtn->Caption = _tr("Cancel"); // NewBMfrm NewBMfrm->Caption = _tr("Add New Bookmark File"); NewBMfrm->Label1->Caption = _tr("File Name (without extension):"); NewBMfrm->Label2->Caption = _tr("Bookmark Section Title:"); NewBMfrm->OkBtn->Caption = _tr("OK"); NewBMfrm->CancelBtn->Caption = _tr("Cancel"); // OptionsForm Optionsfrm->Caption = _tr("Preferences"); Optionsfrm->TabSheet1->Caption = _tr("General"); Optionsfrm->TabSheet2->Caption = _tr("Special Modules"); Optionsfrm->TabSheet3->Caption = _tr("Display"); Optionsfrm->gbPersonalize->Caption = _tr("Personalize"); Optionsfrm->AutoBMPersonal->Caption = _tr("Save Personal Bookmarks"); Optionsfrm->AutoBMOther->Caption = _tr("Save Other Bookmarks"); Optionsfrm->HintPopups->Caption = _tr("Show Hint Pop-ups"); Optionsfrm->Label4->Caption = _tr("Language"); Optionsfrm->AutoLayout->Caption = _tr("Save Screen Layout"); Optionsfrm->HintStrongs->Caption = _tr("Show Hint Over Strongs Numbers"); Optionsfrm->OkBtn->Caption = _tr("OK"); Optionsfrm->CancelBtn->Caption = _tr("Cancel"); Optionsfrm->gbDefModules->Caption = _tr("Original Language Support - Default Modules"); Optionsfrm->Label7->Caption = _tr("Definitions"); Optionsfrm->Label8->Caption = _tr("Parsing"); Optionsfrm->Label5->Caption = _tr("Greek"); Optionsfrm->Label6->Caption = _tr("Hebrew"); Optionsfrm->Label10->Caption = _tr("Strong's Numbered Text"); Optionsfrm->gbDevos->Caption = _tr("Daily Devotionals"); Optionsfrm->Label9->Caption = _tr("Default Devotional"); Optionsfrm->devSplashCB->Caption = _tr("Show Devotional Splash Screen on Startup"); Optionsfrm->devsAsDictsCB->Caption = _tr("Show Devotionals as Dictionaries"); Optionsfrm->gbGloss->Caption = _tr("Glossaries"); Optionsfrm->glosAsDictsCB->Caption = _tr("Show Glossaries as Dictionaries"); Optionsfrm->gbColors->Caption = _tr("Display Colors"); Optionsfrm->Label2->Caption = _tr("Preview"); Optionsfrm->Label3->Caption = _tr("Module Type"); Optionsfrm->Label14->Caption = _tr("Scheme"); Optionsfrm->Label11->Caption = _tr("Text Font"); Optionsfrm->btnFont->Caption = _tr("Select Font..."); Optionsfrm->Label13->Caption = _tr("Verse Number Color"); Optionsfrm->btnNumClr->Caption = _tr("Select Color..."); Optionsfrm->AutoVSColor->Caption = _tr("Current Verse Color"); Optionsfrm->btnCurrVerse->Caption = _tr("Select Color..."); Optionsfrm->Label15->Caption = _tr("Combo/Edit Fields"); Optionsfrm->btnFieldClr->Caption = _tr("Select Color..."); Optionsfrm->Label1->Caption = _tr("Individual Modules (Font Only)"); Optionsfrm->btnModFonts->Caption = _tr("Select Font..."); // RangeMaintForm RangeMaintForm->Caption = _tr("Maintain Custom Ranges"); RangeMaintForm->Label1->Caption = _tr("Range Name"); RangeMaintForm->Label2->Caption = _tr("Range Text"); RangeMaintForm->Label3->Caption = _tr("eg. mat-jo;rev4"); RangeMaintForm->SpeedButton1->Caption = _tr("&Add"); RangeMaintForm->SpeedButton2->Caption = _tr("&Remove"); RangeMaintForm->SpeedButton3->Caption = _tr("&Save"); RangeMaintForm->SpeedButton4->Caption = _tr("&Cancel"); // searchForm searchForm->Caption = _tr("Search..."); searchForm->searchBtn->Caption = _tr("Search"); searchForm->searchTypeGroup->Caption = _tr("Search Type"); searchForm->searchTypeGroup->Items->CommaText = _tr("\"Mult Word\",\"Phrase\",\"Regular Expression\""); searchForm->caseSensitiveCkBx->Caption = _tr("Case Sensitive"); searchForm->searchOptionsGroup->Caption = _tr("Search Options"); searchForm->scopeGroup->Caption = _tr("Scope"); searchForm->scopeGroup->Items->CommaText = _tr("\"Entire Module\",\"Current Results\",\"Custom Range\""); searchForm->customRangeBtn->Caption = _tr("Define Custom Range"); searchForm->resultsLV->Columns->Items[0]->Caption = _tr("Reference"); searchForm->resultsLV->Columns->Items[1]->Caption = _tr("Preview..."); // VerseSelFrm VerseSelFrm->Caption = _tr("Type Verse"); VerseSelFrm->OkBtn->Caption = _tr("OkBtn"); VerseSelFrm->CancelBtn->Caption = _tr("Cancel"); // VerseListFrm VerseListFrm->Caption = _tr("Verse List");