Ticket #7345: sudoku-localization.patch
File sudoku-localization.patch, 13.3 KB (added by , 13 years ago) |
---|
-
src/apps/sudoku/SudokuWindow.cpp
10 10 11 11 #include <Alert.h> 12 12 #include <Application.h> 13 #include <Catalog.h> 13 14 #include <File.h> 14 15 #include <FilePanel.h> 15 16 #include <FindDirectory.h> … … 29 30 #include "SudokuView.h" 30 31 31 32 33 #undef B_TRANSLATE_CONTEXT 34 #define B_TRANSLATE_CONTEXT "SudokuWindow" 35 32 36 const uint32 kMsgOpenFilePanel = 'opfp'; 33 37 const uint32 kMsgGenerateSudoku = 'gnsu'; 34 38 const uint32 kMsgAbortSudokuGenerator = 'asgn'; … … 111 115 112 116 bigtime_t start = system_time(); 113 117 generator.Generate(&fField, 40 - fLevel * 5, fProgress, &fQuit); 114 printf("generated in %g msecs\n", 118 printf(B_TRANSLATE_WITH_CONTEXT("generated in %g msecs\n", 119 "When Sudoku is launched from a Terminal window, this message " 120 "is shown there."), 115 121 (system_time() - start) / 1000.0); 116 122 117 123 BMessage done(kMsgSudokuGenerated); … … 138 144 139 145 140 146 SudokuWindow::SudokuWindow() 141 : BWindow(BRect(100, 100, 500, 520), "Sudoku", B_TITLED_WINDOW,142 147 : BWindow(BRect(100, 100, 500, 520), B_TRANSLATE("Sudoku"), 148 B_TITLED_WINDOW, B_ASYNCHRONOUS_CONTROLS | B_QUIT_ON_WINDOW_CLOSE), 143 149 fGenerator(NULL), 144 150 fStoredState(NULL), 145 151 fExportFormat(kExportAsText) … … 189 195 // add menu 190 196 191 197 // "File" menu 192 BMenu* menu = new BMenu( "File");193 fNewMenu = new BMenu( "New");198 BMenu* menu = new BMenu(B_TRANSLATE("File")); 199 fNewMenu = new BMenu(B_TRANSLATE("New")); 194 200 menu->AddItem(new BMenuItem(fNewMenu, new BMessage(kMsgGenerateSudoku))); 195 201 fNewMenu->Superitem()->SetShortcut('N', B_COMMAND_KEY); 196 202 197 203 BMessage* message = new BMessage(kMsgGenerateSudoku); 198 204 message->AddInt32("level", kEasyLevel); 199 fNewMenu->AddItem(new BMenuItem( "Easy", message));205 fNewMenu->AddItem(new BMenuItem(B_TRANSLATE("Easy"), message)); 200 206 message = new BMessage(kMsgGenerateSudoku); 201 207 message->AddInt32("level", kAdvancedLevel); 202 fNewMenu->AddItem(new BMenuItem( "Advanced", message));208 fNewMenu->AddItem(new BMenuItem(B_TRANSLATE("Advanced"), message)); 203 209 message = new BMessage(kMsgGenerateSudoku); 204 210 message->AddInt32("level", kHardLevel); 205 fNewMenu->AddItem(new BMenuItem( "Hard", message));211 fNewMenu->AddItem(new BMenuItem(B_TRANSLATE("Hard"), message)); 206 212 207 213 fNewMenu->AddSeparatorItem(); 208 fNewMenu->AddItem(new BMenuItem("Blank", new BMessage(kMsgNewBlank))); 214 fNewMenu->AddItem(new BMenuItem(B_TRANSLATE("Blank"), 215 new BMessage(kMsgNewBlank))); 209 216 210 menu->AddItem(new BMenuItem("Start again", new BMessage(kMsgStartAgain))); 217 menu->AddItem(new BMenuItem(B_TRANSLATE("Start again"), 218 new BMessage(kMsgStartAgain))); 211 219 menu->AddSeparatorItem(); 212 220 BMenu* recentsMenu = BRecentFilesList::NewFileListMenu( 213 "Open file" B_UTF8_ELLIPSIS, NULL, NULL, this, 10, false, NULL,214 kSignature);221 B_TRANSLATE("Open file" B_UTF8_ELLIPSIS), NULL, NULL, this, 10, false, 222 NULL, kSignature); 215 223 BMenuItem *item; 216 224 menu->AddItem(item = new BMenuItem(recentsMenu, 217 225 new BMessage(kMsgOpenFilePanel))); … … 219 227 220 228 menu->AddSeparatorItem(); 221 229 222 BMenu* subMenu = new BMenu( "Export as" B_UTF8_ELLIPSIS);230 BMenu* subMenu = new BMenu(B_TRANSLATE("Export as" B_UTF8_ELLIPSIS)); 223 231 message = new BMessage(kMsgExportAs); 224 232 message->AddInt32("as", kExportAsText); 225 subMenu->AddItem(new BMenuItem( "Text", message));233 subMenu->AddItem(new BMenuItem(B_TRANSLATE("Text"), message)); 226 234 message= new BMessage(kMsgExportAs); 227 235 message->AddInt32("as", kExportAsHTML); 228 subMenu->AddItem(new BMenuItem( "HTML", message));236 subMenu->AddItem(new BMenuItem(B_TRANSLATE("HTML"), message)); 229 237 menu->AddItem(subMenu); 230 238 231 menu->AddItem(item = new BMenuItem("Copy", new BMessage(B_COPY), 'C')); 239 menu->AddItem(item = new BMenuItem(B_TRANSLATE("Copy"), 240 new BMessage(B_COPY), 'C')); 232 241 233 242 menu->AddSeparatorItem(); 234 243 235 menu->AddItem(item = new BMenuItem("About Sudoku" B_UTF8_ELLIPSIS, 244 menu->AddItem(item = new BMenuItem( 245 B_TRANSLATE("About Sudoku" B_UTF8_ELLIPSIS), 236 246 new BMessage(B_ABOUT_REQUESTED))); 237 247 menu->AddSeparatorItem(); 238 248 239 menu->AddItem(new BMenuItem("Quit", new BMessage(B_QUIT_REQUESTED), 'Q')); 249 menu->AddItem(new BMenuItem(B_TRANSLATE("Quit"), 250 new BMessage(B_QUIT_REQUESTED), 'Q')); 240 251 menu->SetTargetForItems(this); 241 252 item->SetTarget(be_app); 242 253 menuBar->AddItem(menu); 243 254 244 255 // "View" menu 245 menu = new BMenu( "View");246 menu->AddItem(item = new BMenuItem( "Mark invalid values",256 menu = new BMenu(B_TRANSLATE("View")); 257 menu->AddItem(item = new BMenuItem(B_TRANSLATE("Mark invalid values"), 247 258 new BMessage(kMsgMarkInvalid))); 248 259 if ((fSudokuView->HintFlags() & kMarkInvalid) != 0) 249 260 item->SetMarked(true); 250 menu->AddItem(item = new BMenuItem( "Mark valid hints",261 menu->AddItem(item = new BMenuItem(B_TRANSLATE("Mark valid hints"), 251 262 new BMessage(kMsgMarkValidHints))); 252 263 if ((fSudokuView->HintFlags() & kMarkValidHints) != 0) 253 264 item->SetMarked(true); … … 255 266 menuBar->AddItem(menu); 256 267 257 268 // "Help" menu 258 menu = new BMenu("Help"); 259 menu->AddItem(fUndoItem = new BMenuItem("Undo", new BMessage(B_UNDO), 'Z')); 269 menu = new BMenu(B_TRANSLATE("Help")); 270 menu->AddItem(fUndoItem = new BMenuItem(B_TRANSLATE("Undo"), 271 new BMessage(B_UNDO), 'Z')); 260 272 fUndoItem->SetEnabled(false); 261 menu->AddItem(fRedoItem = new BMenuItem("Redo", new BMessage(B_REDO), 'Z', 273 menu->AddItem(fRedoItem = new BMenuItem(B_TRANSLATE("Redo"), 274 new BMessage(B_REDO), 'Z', 262 275 B_SHIFT_KEY)); 263 276 fRedoItem->SetEnabled(false); 264 277 menu->AddSeparatorItem(); 265 278 266 menu->AddItem(new BMenuItem( "Snapshot current",279 menu->AddItem(new BMenuItem(B_TRANSLATE("Snapshot current"), 267 280 new BMessage(kMsgStoreState))); 268 menu->AddItem(fRestoreStateItem = new BMenuItem("Restore snapshot", 281 menu->AddItem(fRestoreStateItem = new BMenuItem( 282 B_TRANSLATE("Restore snapshot"), 269 283 new BMessage(kMsgRestoreState))); 270 284 fRestoreStateItem->SetEnabled(fStoredState != NULL); 271 285 menu->AddSeparatorItem(); 272 286 273 menu->AddItem(new BMenuItem("Solve", new BMessage(kMsgSolveSudoku))); 274 menu->AddItem(new BMenuItem("Solve single field", 287 menu->AddItem(new BMenuItem(B_TRANSLATE("Solve"), 288 new BMessage(kMsgSolveSudoku))); 289 menu->AddItem(new BMenuItem(B_TRANSLATE("Solve single field"), 275 290 new BMessage(kMsgSolveSingle))); 276 291 menu->SetTargetForItems(fSudokuView); 277 292 menuBar->AddItem(menu); … … 396 411 char buffer[1024]; 397 412 if (hasRef) { 398 413 snprintf(buffer, sizeof(buffer), 399 "Could not open \"%s\":\n"400 "%s", ref.name,strerror(status));414 B_TRANSLATE("Could not open \"%s\":\n%s\n"), ref.name, 415 strerror(status)); 401 416 } else { 402 snprintf(buffer, sizeof(buffer), "Could not set Sudoku:\n%s", 417 snprintf(buffer, sizeof(buffer), 418 B_TRANSLATE("Could not set Sudoku:\n%s\n"), 403 419 strerror(status)); 404 420 } 405 421 406 (new BAlert( "Sudoku request",407 buffer, "OK", NULL, NULL,422 (new BAlert(B_TRANSLATE("Sudoku request"), 423 buffer, B_TRANSLATE("OK"), NULL, NULL, 408 424 B_WIDTH_AS_USUAL, B_STOP_ALERT))->Go(); 409 425 } 410 426 } … … 546 562 } 547 563 548 564 case kMsgSudokuSolved: 549 (new BAlert("Sudoku request", 550 "Sudoku solved - congratulations!", "OK", NULL, NULL, 565 (new BAlert(B_TRANSLATE("Sudoku request"), 566 B_TRANSLATE("Sudoku solved - congratulations!\n"), 567 B_TRANSLATE("OK"), NULL, NULL, 551 568 B_WIDTH_AS_USUAL, B_IDEA_ALERT))->Go(); 552 569 break; 553 570 -
src/apps/sudoku/SudokuView.cpp
18 18 #include <Application.h> 19 19 #include <Beep.h> 20 20 #include <Bitmap.h> 21 #include <Catalog.h> 21 22 #include <Clipboard.h> 22 23 #include <DataIO.h> 23 24 #include <Dragger.h> … … 28 29 #include <String.h> 29 30 30 31 32 #undef B_TRANSLATE_CONTEXT 33 #define B_TRANSLATE_CONTEXT "SudokuView" 34 31 35 const uint32 kMsgCheckSolved = 'chks'; 32 36 33 37 const uint32 kStrongLineSize = 2; … … 1034 1038 solver.SetTo(fField); 1035 1039 bigtime_t start = system_time(); 1036 1040 solver.ComputeSolutions(); 1037 printf("found %ld solutions in %g msecs\n", 1041 printf( 1042 B_TRANSLATE_WITH_CONTEXT("found %ld solutions in %g msecs\n", 1043 "When Sudoku is launched from a Terminal window, this message " 1044 "is shown there."), 1038 1045 solver.CountSolutions(), (system_time() - start) / 1000.0); 1039 1046 if (solver.CountSolutions() > 0) { 1040 1047 _PushUndo(); … … 1056 1063 solver.SetTo(fField); 1057 1064 bigtime_t start = system_time(); 1058 1065 solver.ComputeSolutions(); 1059 printf("found %ld solutions in %g msecs\n", 1066 printf( 1067 B_TRANSLATE_WITH_CONTEXT("found %ld solutions in %g msecs\n", 1068 "When Sudoku is launched from a Terminal window, this message " 1069 "is shown there."), 1060 1070 solver.CountSolutions(), (system_time() - start) / 1000.0); 1061 1071 if (solver.CountSolutions() > 0) { 1062 1072 _PushUndo(); -
src/apps/sudoku/Sudoku.cpp
12 12 13 13 #include <Alert.h> 14 14 #include <Application.h> 15 #include <Catalog.h> 15 16 #include <TextView.h> 16 17 18 #undef B_TRANSLATE_CONTEXT 19 #define B_TRANSLATE_CONTEXT "Sudoku" 17 20 18 21 const char* kSignature = "application/x-vnd.Haiku-Sudoku"; 19 22 … … 61 64 void 62 65 Sudoku::DisplayAbout() 63 66 { 64 BAlert *alert = new BAlert( "about","Sudoku\n"67 BAlert *alert = new BAlert(B_TRANSLATE("About"), B_TRANSLATE("Sudoku\n" 65 68 "\twritten by Axel Dörfler\n" 66 "\tCopyright 2007, Haiku Inc.\n" , "OK");69 "\tCopyright 2007, Haiku Inc.\n"), B_TRANSLATE("OK")); 67 70 BTextView *view = alert->TextView(); 68 71 BFont font; 69 72 … … 72 75 view->GetFont(&font); 73 76 font.SetSize(18); 74 77 font.SetFace(B_BOLD_FACE); 75 view->SetFontAndColor(0, 6, &font); 76 78 view->SetFontAndColor(0, strlen(B_TRANSLATE("Sudoku")), &font); 79 80 alert->SetShortcut(0, B_ESCAPE); 77 81 alert->Go(); 78 82 } 79 83 -
src/apps/sudoku/SudokuGenerator.cpp
10 10 #include "SudokuField.h" 11 11 #include "SudokuSolver.h" 12 12 13 #include <Catalog.h> 14 13 15 #include <stdio.h> 14 16 #include <stdlib.h> 15 17 #include <string.h> 16 18 19 #undef B_TRANSLATE_CONTEXT 20 #define B_TRANSLATE_CONTEXT "SudokuGenerator" 21 17 22 SudokuGenerator::SudokuGenerator() 18 23 { 19 24 } … … 54 59 55 60 SudokuField field(target->BlockSize()); 56 61 uint32 inputCount = field.Size() * field.Size() / 3; 57 _Progress(progress, "Creating solvable field", 5.f);62 _Progress(progress, B_TRANSLATE("Creating solvable field"), 5.f); 58 63 59 64 while (!*quit) { 60 65 field.Reset(); … … 107 112 bool tried[field.Size() * field.Size()]; 108 113 int32 tries = field.Size() * field.Size() * 3 / 4; 109 114 memset(tried, 0, sizeof(tried)); 110 _Progress(progress, "Searching for removable values", 30.f);115 _Progress(progress, B_TRANSLATE("Searching for removable values"), 30.f); 111 116 112 117 while (!*quit && removeCount > 0 && tries-- > 0) { 113 118 SudokuField copy(field); … … 132 137 return; 133 138 134 139 if (tries <= 0) { 135 puts("check all remove"); 140 puts(B_TRANSLATE_WITH_CONTEXT("check all remove", 141 "When Sudoku is launched from a Terminal window, this message " 142 "is shown there.")); 136 143 for (uint32 y = 0; y < field.Size(); y++) { 137 144 for (uint32 x = 0; x < field.Size(); x++) { 138 145 if (tried[x + y * field.Size()]) … … 154 161 if (removeCount <= 0 || *quit) 155 162 break; 156 163 } 157 printf(" remove count = %ld\n", removeCount); 164 printf(B_TRANSLATE_WITH_CONTEXT(" remove count = %ld\n", 165 "When Sudoku is launched from a Terminal window, this message " 166 "is shown there."), removeCount); 158 167 } 159 168 160 169 // set the remaining values to be initial values -
src/apps/sudoku/Jamfile
12 12 SudokuView.cpp 13 13 SudokuWindow.cpp 14 14 15 : be tracker $( TARGET_LIBSTDC++)15 : be tracker $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSTDC++) 16 16 : Sudoku.rdef 17 17 ; 18 19 DoCatalogs Sudoku : 20 x-vnd.Haiku-Sudoku 21 : 22 Sudoku.cpp 23 ProgressWindow.cpp 24 SudokuGenerator.cpp 25 SudokuWindow.cpp 26 ; 27 28 29 AddCatalogEntryAttribute Sudoku 30 : 31 x-vnd.Haiku-Sudoku:SudokuWindow:Sudoku 32 ; -
src/apps/sudoku/ProgressWindow.cpp
8 8 9 9 #include <Autolock.h> 10 10 #include <Button.h> 11 #include <Catalog.h> 11 12 #include <MessageRunner.h> 12 13 #include <Screen.h> 13 14 #include <StatusBar.h> … … 15 16 #include <stdio.h> 16 17 17 18 19 #undef B_TRANSLATE_CONTEXT 20 #define B_TRANSLATE_CONTEXT "ProgressWindow" 21 18 22 static const uint32 kMsgShow = 'show'; 19 23 20 24 21 25 ProgressWindow::ProgressWindow(BWindow* referenceWindow, 22 26 BMessage* abortMessage) 23 : BWindow(BRect(0, 0, 250, 100), "Progress monitor",27 : BWindow(BRect(0, 0, 250, 100), B_TRANSLATE("Progress monitor"), 24 28 B_MODAL_WINDOW_LOOK, B_FLOATING_APP_WINDOW_FEEL, 25 29 B_NOT_ZOOMABLE | B_NOT_RESIZABLE | B_ASYNCHRONOUS_CONTROLS), 26 30 fRunner(NULL) … … 41 45 42 46 if (abortMessage != NULL && referenceWindow) { 43 47 rect.top += height + 8; 44 BButton* button = new BButton(rect, "abort", "Abort",48 BButton* button = new BButton(rect, "abort", B_TRANSLATE("Abort"), 45 49 abortMessage); 46 50 button->ResizeToPreferred(); 47 51 button->MoveBy((rect.Width() - button->Bounds().Width()) / 2, 0);