Ticket #7005: NotificationsLocalization.patch
File NotificationsLocalization.patch, 20.1 KB (added by , 12 years ago) |
---|
-
src/preferences/notifications/DisplayView.cpp
11 11 #include <stdlib.h> 12 12 13 13 #include <Alert.h> 14 #include <Catalog.h> 14 15 #include <Directory.h> 15 16 #include <Message.h> 16 17 #include <FindDirectory.h> … … 29 30 #include "DisplayView.h" 30 31 #include "SettingsHost.h" 31 32 32 #define _T(str) (str) 33 #undef B_TRANSLATE_CONTEXT 34 #define B_TRANSLATE_CONTEXT "DisplayView" 33 35 34 35 36 DisplayView::DisplayView(SettingsHost* host) 36 37 : 37 38 SettingsPane("display", host) 38 39 { 39 40 // Window width 40 fWindowWidth = new BTextControl( _T("Window width:"), NULL,41 fWindowWidth = new BTextControl(B_TRANSLATE("Window width:"), NULL, 41 42 new BMessage(kSettingChanged)); 42 43 43 44 // Icon size 44 45 fIconSize = new BMenu("iconSize"); 45 fIconSize->AddItem(new BMenuItem( _T("Mini icon"),46 fIconSize->AddItem(new BMenuItem(B_TRANSLATE("Mini icon"), 46 47 new BMessage(kSettingChanged))); 47 fIconSize->AddItem(new BMenuItem( _T("Large icon"),48 fIconSize->AddItem(new BMenuItem(B_TRANSLATE("Large icon"), 48 49 new BMessage(kSettingChanged))); 49 50 fIconSize->SetLabelFromMarked(true); 50 fIconSizeField = new BMenuField( _T("Icon size:"), fIconSize);51 fIconSizeField = new BMenuField(B_TRANSLATE("Icon size:"), fIconSize); 51 52 52 53 // Title position 53 54 fTitlePosition = new BMenu("titlePosition"); 54 fTitlePosition->AddItem(new BMenuItem( _T("Above icon"),55 fTitlePosition->AddItem(new BMenuItem(B_TRANSLATE("Above icon"), 55 56 new BMessage(kSettingChanged))); 56 fTitlePosition->AddItem(new BMenuItem( _T("Right of icon"),57 fTitlePosition->AddItem(new BMenuItem(B_TRANSLATE("Right of icon"), 57 58 new BMessage(kSettingChanged))); 58 59 fTitlePosition->SetLabelFromMarked(true); 59 fTitlePositionField = new BMenuField(_T("Title position:"), fTitlePosition); 60 fTitlePositionField = new BMenuField(B_TRANSLATE("Title position:"), 61 fTitlePosition); 60 62 61 63 // Load settings 62 64 Load(); … … 111 113 112 114 if (create_directory(path.Path(), 0755) != B_OK) { 113 115 BAlert* alert = new BAlert("", 114 _T("There was a problem saving the preferences.\n"116 B_TRANSLATE("There was a problem saving the preferences.\n" 115 117 "It's possible you don't have write access to the " 116 "settings directory."), "OK", NULL, NULL,118 "settings directory."), B_TRANSLATE("OK"), NULL, NULL, 117 119 B_WIDTH_AS_USUAL, B_STOP_ALERT); 118 120 (void)alert->Go(); 119 121 } … … 205 207 status_t ret = settings.Flatten(&file); 206 208 if (ret != B_OK) { 207 209 BAlert* alert = new BAlert("", 208 _T("Can't save preferenes, you probably don't have write " 209 "access to the settings directory or the disk is full."), "OK", NULL, NULL, 210 B_TRANSLATE("Can't save preferenes, you probably don't have write " 211 "access to the settings directory or the disk is full."), 212 B_TRANSLATE("OK"), NULL, NULL, 210 213 B_WIDTH_AS_USUAL, B_STOP_ALERT); 211 214 (void)alert->Go(); 212 215 return ret; -
src/preferences/notifications/NotificationsView.cpp
8 8 */ 9 9 10 10 #include <Alert.h> 11 #include <Catalog.h> 12 #include <CheckBox.h> 13 #include <ColumnListView.h> 14 #include <ColumnTypes.h> 11 15 #include <Directory.h> 12 16 #include <FindDirectory.h> 13 17 #include <GroupLayout.h> 14 18 #include <GroupLayoutBuilder.h> 15 #include <Window.h>16 #include <CheckBox.h>17 #include <TextControl.h>18 #include <Path.h>19 19 #include <Notification.h> 20 20 #include <notification/Notifications.h> 21 21 #include <notification/NotificationReceived.h> 22 #include <Path.h> 23 #include <TextControl.h> 24 #include <Window.h> 22 25 23 #include <ColumnListView.h>24 #include <ColumnTypes.h>25 26 26 #include "NotificationsView.h" 27 27 28 #define _T(str) (str) 28 #undef B_TRANSLATE_CONTEXT 29 #define B_TRANSLATE_CONTEXT "NotificationsView" 29 30 30 31 const float kEdgePadding = 5.0; 31 32 const float kCLVTitlePadding = 8.0; … … 55 56 BRect rect(0, 0, 100, 100); 56 57 57 58 // Search application field 58 fSearch = new BTextControl( _T("Search:"), NULL,59 fSearch = new BTextControl(B_TRANSLATE("Search:"), NULL, 59 60 new BMessage(kSettingChanged)); 60 61 61 62 // Applications list 62 fApplications = new BColumnListView(rect, _T("Applications"),63 fApplications = new BColumnListView(rect, B_TRANSLATE("Applications"), 63 64 0, B_WILL_DRAW, B_FANCY_BORDER, true); 64 65 fApplications->SetSelectionMode(B_SINGLE_SELECTION_LIST); 65 66 66 fAppCol = new BStringColumn( _T("Application"), 200,67 be_plain_font->StringWidth( _T("Application")) + (kCLVTitlePadding * 2),68 rect.Width(), B_TRUNCATE_END, B_ALIGN_LEFT);67 fAppCol = new BStringColumn(B_TRANSLATE("Application"), 200, 68 be_plain_font->StringWidth(B_TRANSLATE("Application")) + 69 (kCLVTitlePadding * 2), rect.Width(), B_TRUNCATE_END, B_ALIGN_LEFT); 69 70 fApplications->AddColumn(fAppCol, kAppIndex); 70 71 71 fAppEnabledCol = new BStringColumn( _T("Enabled"), 10,72 be_plain_font->StringWidth( _T("Enabled")) + (kCLVTitlePadding * 2),73 rect.Width(), B_TRUNCATE_END, B_ALIGN_LEFT);72 fAppEnabledCol = new BStringColumn(B_TRANSLATE("Enabled"), 10, 73 be_plain_font->StringWidth(B_TRANSLATE("Enabled")) + 74 (kCLVTitlePadding * 2), rect.Width(), B_TRUNCATE_END, B_ALIGN_LEFT); 74 75 fApplications->AddColumn(fAppEnabledCol, kAppEnabledIndex); 75 76 76 77 // Notifications list 77 fNotifications = new BColumnListView(rect, _T("Notifications"),78 fNotifications = new BColumnListView(rect, B_TRANSLATE("Notifications"), 78 79 0, B_WILL_DRAW, B_FANCY_BORDER, true); 79 80 fNotifications->SetSelectionMode(B_SINGLE_SELECTION_LIST); 80 81 81 fTitleCol = new BStringColumn( _T("Title"), 100,82 be_plain_font->StringWidth( _T("Title")) + (kCLVTitlePadding * 2),83 rect.Width(), B_TRUNCATE_END, B_ALIGN_LEFT);82 fTitleCol = new BStringColumn(B_TRANSLATE("Title"), 100, 83 be_plain_font->StringWidth(B_TRANSLATE("Title")) + 84 (kCLVTitlePadding * 2), rect.Width(), B_TRUNCATE_END, B_ALIGN_LEFT); 84 85 fNotifications->AddColumn(fTitleCol, kTitleIndex); 85 86 86 fDateCol = new BDateColumn( _T("Last Received"), 100,87 be_plain_font->StringWidth( _T("Last Received")) + (kCLVTitlePadding * 2),88 rect.Width(), B_ALIGN_LEFT);87 fDateCol = new BDateColumn(B_TRANSLATE("Last Received"), 100, 88 be_plain_font->StringWidth(B_TRANSLATE("Last Received")) + 89 (kCLVTitlePadding * 2), rect.Width(), B_ALIGN_LEFT); 89 90 fNotifications->AddColumn(fDateCol, kDateIndex); 90 91 91 fTypeCol = new BStringColumn( _T("Type"), 100,92 be_plain_font->StringWidth( _T("Type")) + (kCLVTitlePadding * 2),93 rect.Width(), B_TRUNCATE_END, B_ALIGN_LEFT);92 fTypeCol = new BStringColumn(B_TRANSLATE("Type"), 100, 93 be_plain_font->StringWidth(B_TRANSLATE("Type")) + 94 (kCLVTitlePadding * 2), rect.Width(), B_TRUNCATE_END, B_ALIGN_LEFT); 94 95 fNotifications->AddColumn(fTypeCol, kTypeIndex); 95 96 96 fAllowCol = new BStringColumn( _T("Allowed"), 100,97 be_plain_font->StringWidth( _T("Allowed")) + (kCLVTitlePadding * 2),98 rect.Width(), B_TRUNCATE_END, B_ALIGN_LEFT);97 fAllowCol = new BStringColumn(B_TRANSLATE("Allowed"), 100, 98 be_plain_font->StringWidth(B_TRANSLATE("Allowed")) + 99 (kCLVTitlePadding * 2), rect.Width(), B_TRUNCATE_END, B_ALIGN_LEFT); 99 100 fNotifications->AddColumn(fAllowCol, kAllowIndex); 100 101 101 102 // Load the applications list … … 177 178 178 179 if (create_directory(path.Path(), 0755) != B_OK) { 179 180 BAlert* alert = new BAlert("", 180 _T("There was a problem saving the preferences.\n"181 B_TRANSLATE("There was a problem saving the preferences.\n" 181 182 "It's possible you don't have write access to the " 182 "settings directory."), "OK", NULL, NULL,183 "settings directory."), B_TRANSLATE("OK"), NULL, NULL, 183 184 B_WIDTH_AS_USUAL, B_STOP_ALERT); 184 185 (void)alert->Go(); 185 186 return B_ERROR; … … 247 248 for (int32 i = 0; i < size; i++) { 248 249 NotificationReceived* notification = usage->NotificationAt(i); 249 250 time_t updated = notification->LastReceived(); 250 const char* allow = notification->Allowed() ? _T("Yes") : _T("No"); 251 const char* allow = notification->Allowed() ? B_TRANSLATE("Yes") : 252 B_TRANSLATE("No"); 251 253 const char* type = ""; 252 254 253 255 switch (notification->Type()) { 254 256 case B_INFORMATION_NOTIFICATION: 255 type = _T("Information");257 type = B_TRANSLATE("Information"); 256 258 break; 257 259 case B_IMPORTANT_NOTIFICATION: 258 type = _T("Important");260 type = B_TRANSLATE("Important"); 259 261 break; 260 262 case B_ERROR_NOTIFICATION: 261 type = _T("Error");263 type = B_TRANSLATE("Error"); 262 264 break; 263 265 case B_PROGRESS_NOTIFICATION: 264 type = _T("Progress");266 type = B_TRANSLATE("Progress"); 265 267 break; 266 268 default: 267 type = _T("Unknown");269 type = B_TRANSLATE("Unknown"); 268 270 } 269 271 270 272 BRow* row = new BRow(); -
src/preferences/notifications/GeneralView.cpp
12 12 13 13 #include <vector> 14 14 15 #include <Roster.h>16 #include <GroupLayout.h>17 #include <GroupLayoutBuilder.h>18 15 #include <Alert.h> 19 #include <Font.h>20 16 #include <Button.h> 21 #include <StringView.h> 22 #include <TextControl.h> 17 #include <Catalog.h> 23 18 #include <CheckBox.h> 24 #include <String.h> 19 #include <Directory.h> 20 #include <File.h> 25 21 #include <FindDirectory.h> 22 #include <Font.h> 23 #include <GroupLayout.h> 24 #include <GroupLayoutBuilder.h> 26 25 #include <Node.h> 27 26 #include <notification/Notifications.h> 28 27 #include <Path.h> 29 #include <File.h>30 #include <Directory.h>31 #include <VolumeRoster.h>32 #include <Volume.h>33 28 #include <Query.h> 29 #include <Roster.h> 30 #include <String.h> 31 #include <StringView.h> 34 32 #include <SymLink.h> 33 #include <TextControl.h> 34 #include <Volume.h> 35 #include <VolumeRoster.h> 35 36 36 37 #include "GeneralView.h" 37 38 #include "SettingsHost.h" 38 39 39 #define _T(str) (str) 40 #undef B_TRANSLATE_CONTEXT 41 #define B_TRANSLATE_CONTEXT "GeneralView" 40 42 41 43 const int32 kServer = '_TSR'; 42 44 43 const char* kStartServer = _T("Enable notifications");44 const char* kStopServer = _T("Disable notifications");45 const char* kStarted = _T("Events are notified");46 const char* kStopped = _T("Events are not notified");45 const char* kStartServer = B_TRANSLATE_MARK("Enable notifications"); 46 const char* kStopServer = B_TRANSLATE_MARK("Disable notifications"); 47 const char* kStarted = B_TRANSLATE_MARK("Events are notified"); 48 const char* kStopped = B_TRANSLATE_MARK("Events are not notified"); 47 49 48 50 49 51 GeneralView::GeneralView(SettingsHost* host) … … 71 73 72 74 // Autostart 73 75 fAutoStart = new BCheckBox("autostart", 74 _T("Enable notifications at startup"), new BMessage(kSettingChanged)); 76 B_TRANSLATE("Enable notifications at startup"), 77 new BMessage(kSettingChanged)); 75 78 76 79 // Display time 77 fTimeout = new BTextControl(_T("Hide notifications from screen after"), NULL, 80 fTimeout = new BTextControl( 81 B_TRANSLATE("Hide notifications from screen after"), NULL, 78 82 new BMessage(kSettingChanged)); 79 83 BStringView* displayTimeLabel = new BStringView("dt_label", 80 _T("seconds of inactivity"));84 B_TRANSLATE("seconds of inactivity")); 81 85 82 86 // Default position 83 87 // TODO: Here will come a screen representation with the four corners clickable … … 129 133 130 134 // Check if server is available 131 135 if (!_CanFindServer(&ref)) { 132 BAlert* alert = new BAlert(_T("Notifications"), 133 _T("The notifications server cannot be found, " 134 "this means your InfoPopper installation was not " 135 "successfully completed."), _T("OK"), NULL, 136 NULL, B_WIDTH_AS_USUAL, B_STOP_ALERT); 136 BAlert* alert = new BAlert(B_TRANSLATE("Notifications"), 137 B_TRANSLATE("The notifications server cannot be " 138 "found, this means your InfoPopper installation " 139 "was not successfully completed."), 140 B_TRANSLATE("OK"), NULL, NULL, B_WIDTH_AS_USUAL, 141 B_STOP_ALERT); 137 142 (void)alert->Go(); 138 143 return; 139 144 } … … 146 151 status_t ret = B_ERROR; 147 152 BMessenger messenger(kNotificationServerSignature, team, &ret); 148 153 if (ret != B_OK) { 149 BAlert* alert = new BAlert(_T("Notifications"), 150 _T("Notifications cannot be stopped, because " 151 "the server can't be reached."), 152 _T("OK"), NULL, NULL, B_WIDTH_AS_USUAL, B_STOP_ALERT); 154 BAlert* alert = new BAlert(B_TRANSLATE("Notifications"), 155 B_TRANSLATE("Notifications cannot be stopped, " 156 "because the server can't be reached."), 157 B_TRANSLATE("OK"), NULL, NULL, B_WIDTH_AS_USUAL, 158 B_STOP_ALERT); 153 159 (void)alert->Go(); 154 160 return; 155 161 } 156 162 157 163 // Send quit message 158 164 if (messenger.SendMessage(new BMessage(B_QUIT_REQUESTED)) != B_OK) { 159 BAlert* alert = new BAlert(_T("Notifications"), 160 _T("Cannot disable notifications because the server " 161 "can't be reached."), _T("OK"), NULL, 165 BAlert* alert = new BAlert( 166 B_TRANSLATE("Notifications"), 167 B_TRANSLATE("Cannot disable notifications because " 168 "the server can't be reached."), B_TRANSLATE("OK"), NULL, 162 169 NULL, B_WIDTH_AS_USUAL, B_STOP_ALERT); 163 170 (void)alert->Go(); 164 171 return; … … 170 177 // Start server 171 178 status_t err = be_roster->Launch(kNotificationServerSignature); 172 179 if (err != B_OK) { 173 BAlert* alert = new BAlert(_T("Notifications"), 174 _T("Cannot enable notifications because the server " 175 "cannot be found.\nThis means your InfoPopper " 176 "installation was not successfully completed."), 177 _T("OK"), NULL, NULL, B_WIDTH_AS_USUAL, B_STOP_ALERT); 180 BAlert* alert = new BAlert( 181 B_TRANSLATE("Notifications"), 182 B_TRANSLATE("Cannot enable notifications because " 183 "the server cannot be found.\nThis means your " 184 "InfoPopper installation was not successfully " 185 "completed."), B_TRANSLATE("OK"), NULL, NULL, 186 B_WIDTH_AS_USUAL, B_STOP_ALERT); 178 187 (void)alert->Go(); 179 188 return; 180 189 } … … 205 214 206 215 if (create_directory(path.Path(), 0755) != B_OK) { 207 216 BAlert* alert = new BAlert("", 208 _T("There was a problem saving the preferences.\n"209 210 "settings directory."), "OK", NULL, NULL,217 B_TRANSLATE("There was a problem saving the preferences.\n" 218 "It's possible you don't have write access to the " 219 "settings directory."), B_TRANSLATE("OK"), NULL, NULL, 211 220 B_WIDTH_AS_USUAL, B_STOP_ALERT); 212 221 (void)alert->Go(); 213 222 } … … 261 270 ret = settings.Flatten(&file); 262 271 if (ret != B_OK) { 263 272 BAlert* alert = new BAlert("", 264 _T("An error is occurred saving the preferences.\n"265 266 "OK", NULL, NULL, B_WIDTH_AS_USUAL, B_STOP_ALERT);273 B_TRANSLATE("An error is occurred saving the preferences.\n" 274 "It's possible you are running out of disk space."), 275 B_TRANSLATE("OK"), NULL, NULL, B_WIDTH_AS_USUAL, B_STOP_ALERT); 267 276 (void)alert->Go(); 268 277 return ret; 269 278 } … … 272 281 entry_ref ref; 273 282 if (!_CanFindServer(&ref)) { 274 283 BAlert* alert = new BAlert("", 275 _T("The notifications server cannot be found.\n"276 277 "OK", NULL, NULL, B_WIDTH_AS_USUAL, B_STOP_ALERT);284 B_TRANSLATE("The notifications server cannot be found.\n" 285 "A possible cause is an installation not done correctly"), 286 B_TRANSLATE("OK"), NULL, NULL, B_WIDTH_AS_USUAL, B_STOP_ALERT); 278 287 (void)alert->Go(); 279 288 return B_ERROR; 280 289 } … … 286 295 ret = find_directory(B_USER_BOOT_DIRECTORY, &path, true); 287 296 if (ret != B_OK) { 288 297 BAlert* alert = new BAlert("", 289 _T("Can't save preferences, you probably don't have write "290 "access to the boot settings directory."), "OK", NULL, NULL,291 B_ WIDTH_AS_USUAL, B_STOP_ALERT);298 B_TRANSLATE("Can't save preferences, you probably don't have " 299 "write access to the boot settings directory."), 300 B_TRANSLATE("OK"), NULL, NULL, B_WIDTH_AS_USUAL, B_STOP_ALERT); 292 301 (void)alert->Go(); 293 302 return ret; 294 303 } … … 305 314 if ((ret = directory.CreateSymLink(serverPath.Leaf(), 306 315 serverPath.Path(), NULL) != B_OK)) { 307 316 BAlert* alert = new BAlert("", 308 _T("Can't enable notifications at startup time, you probably don't have " 309 "write permission to the boot settings directory."), "OK", NULL, NULL, 317 B_TRANSLATE("Can't enable notifications at startup time, you " 318 "probably don't have write permission to the boot settings " 319 "directory."), B_TRANSLATE("OK"), NULL, NULL, 310 320 B_WIDTH_AS_USUAL, B_STOP_ALERT); 311 321 (void)alert->Go(); 312 322 return ret; -
src/preferences/notifications/PrefletWin.cpp
8 8 */ 9 9 10 10 #include <Application.h> 11 #include <Button.h> 11 12 #include <GroupLayout.h> 12 13 #include <GroupLayoutBuilder.h> 13 #include <Button.h>14 14 15 15 #include "PrefletWin.h" 16 16 #include "PrefletView.h" 17 17 18 #define _T(str) (str)19 20 18 const int32 kRevert = '_RVT'; 21 19 const int32 kSave = '_SAV'; 22 20 23 21 24 22 PrefletWin::PrefletWin() 25 23 : 26 BWindow(BRect(0, 0, 1, 1), "Notifications", B_TITLED_WINDOW, B_NOT_ZOOMABLE 27 | B_NOT_RESIZABLE | B_ASYNCHRONOUS_CONTROLS | B_AUTO_UPDATE_SIZE_LIMITS) 24 BWindow(BRect(0, 0, 1, 1), kAppName, B_TITLED_WINDOW, 25 B_NOT_ZOOMABLE | B_NOT_RESIZABLE | B_ASYNCHRONOUS_CONTROLS | 26 B_AUTO_UPDATE_SIZE_LIMITS) 28 27 { 29 28 // Preflet container view 30 29 fMainView = new PrefletView(this); 31 30 32 31 // Save and revert buttons 33 fRevert = new BButton("revert", _T("Revert"), new BMessage(kRevert)); 32 fRevert = new BButton("revert", B_TRANSLATE("Revert"), 33 new BMessage(kRevert)); 34 34 fRevert->SetEnabled(false); 35 fSave = new BButton("save", _T("Save"), new BMessage(kSave));35 fSave = new BButton("save", B_TRANSLATE("Save"), new BMessage(kSave)); 36 36 fSave->SetEnabled(false); 37 37 38 38 // Calculate inset -
src/preferences/notifications/PrefletWin.h
6 6 #ifndef _PREFLET_WIN_H 7 7 #define _PREFLET_WIN_H 8 8 9 #include <Catalog.h> 9 10 #include <Window.h> 10 11 11 12 #include "SettingsHost.h" … … 14 15 15 16 class PrefletView; 16 17 18 #undef B_TRANSLATE_CONTEXT 19 #define B_TRANSLATE_CONTEXT "Notifications" 20 21 static const char* kAppName = B_TRANSLATE_MARK("Notifications"); 22 23 17 24 class PrefletWin : public BWindow, public SettingsHost { 18 25 public: 19 26 PrefletWin(); -
src/preferences/notifications/Jamfile
12 12 NotificationsView.cpp 13 13 IconRule.cpp 14 14 IconItem.cpp 15 : be translation libcolumnlistview.a libnotification.a $(TARGET_LIBSTDC++) 15 : be translation libcolumnlistview.a libnotification.a $(TARGET_LIBSTDC++) 16 $(HAIKU_LOCALE_LIBS) 16 17 : Notifications.rdef 17 18 ; 18 19 19 20 Depends Notifications : libcolumnlistview.a ; 20 21 Depends Notifications : libnotification.a ; 22 23 DoCatalogs Notifications : 24 x-vnd.Haiku-Notifications 25 : 26 DisplayView.cpp 27 GeneralView.cpp 28 NotificationsView.cpp 29 PrefletView.cpp 30 PrefletWin.cpp 31 PrefletWin.h 32 ; -
src/preferences/notifications/PrefletView.cpp
7 7 * Pier Luigi Fiorini, pierluigi.fiorini@gmail.com 8 8 */ 9 9 10 #include < Message.h>10 #include <Catalog.h> 11 11 #include <GroupLayout.h> 12 12 #include <GroupLayoutBuilder.h> 13 13 #include <CardLayout.h> 14 14 #include <LayoutItem.h> 15 #include <Message.h> 15 16 16 17 #include "SettingsHost.h" 17 18 #include "PrefletView.h" … … 20 21 #include "DisplayView.h" 21 22 #include "NotificationsView.h" 22 23 23 #define _T(str) (str) 24 #undef B_TRANSLATE_CONTEXT 25 #define B_TRANSLATE_CONTEXT "PrefletView" 24 26 25 27 const int32 kPageSelected = '_LCH'; 26 28 … … 32 34 // Page selector 33 35 fRule = new BIconRule("icon_rule"); 34 36 fRule->SetSelectionMessage(new BMessage(kPageSelected)); 35 fRule->AddIcon( _T("General"), NULL);36 fRule->AddIcon( _T("Display"), NULL);37 fRule->AddIcon(B_TRANSLATE("General"), NULL); 38 fRule->AddIcon(B_TRANSLATE("Display"), NULL); 37 39 //fRule->AddIcon(_T("Notifications"), NULL); 38 40 39 41 // View for card layout