Mercurial > mplayer.hg
comparison gui/win32/gui.c @ 34163:95c396eb89ab
Internationalize and localize the Win32 GUI.
Replace string constants by symbolic constants and
add new symbolic constants where necessary.
author | ib |
---|---|
date | Tue, 25 Oct 2011 13:46:43 +0000 |
parents | 9b1b7d46b8d0 |
children | ecb8df177459 |
comparison
equal
deleted
inserted
replaced
34162:9b1b7d46b8d0 | 34163:95c396eb89ab |
---|---|
67 play_tree_t *playtree = NULL; | 67 play_tree_t *playtree = NULL; |
68 | 68 |
69 static HBRUSH colorbrush = NULL; //Handle to colorkey brush | 69 static HBRUSH colorbrush = NULL; //Handle to colorkey brush |
70 static COLORREF windowcolor = RGB(255,0,255); //Windowcolor == colorkey | 70 static COLORREF windowcolor = RGB(255,0,255); //Windowcolor == colorkey |
71 | 71 |
72 /** | |
73 * @brief Convert an UTF-8 encoded string into ANSI codepage encoding. | |
74 * | |
75 * @param utf8 UTF-8 encoded string | |
76 * | |
77 * @return string containing ANSI codepage encoding of @a utf8 (or, in case | |
78 * of error, a string containing the question mark character) | |
79 */ | |
80 LPSTR acp (LPCSTR utf8) | |
81 { | |
82 static LPSTR acp_str = NULL; | |
83 int chars; | |
84 LPWSTR uc_str; | |
85 | |
86 chars = MultiByteToWideChar(CP_UTF8, 0, utf8, -1, NULL, 0); | |
87 | |
88 if (chars) | |
89 { | |
90 uc_str = malloc(sizeof(*uc_str) * (chars + 1)); | |
91 | |
92 if (uc_str) | |
93 { | |
94 MultiByteToWideChar(CP_UTF8, 0, utf8, -1, uc_str, chars); | |
95 | |
96 chars = WideCharToMultiByte(CP_ACP, 0, uc_str, -1, NULL, 0, NULL, 0); | |
97 | |
98 if (chars) | |
99 { | |
100 free(acp_str); | |
101 acp_str = malloc(sizeof(*acp_str) * (chars + 1)); | |
102 | |
103 if (acp_str) | |
104 { | |
105 WideCharToMultiByte(CP_ACP, 0, uc_str, -1, acp_str, chars, NULL, 0); | |
106 free(uc_str); | |
107 | |
108 return acp_str; | |
109 } | |
110 } | |
111 | |
112 free(uc_str); | |
113 } | |
114 } | |
115 | |
116 return "?"; | |
117 } | |
118 | |
72 static void console_toggle(void) | 119 static void console_toggle(void) |
73 { | 120 { |
74 if (console_state) | 121 if (console_state) |
75 { | 122 { |
76 FreeConsole(); | 123 FreeConsole(); |
131 } | 178 } |
132 static void display_about_box(HWND hWnd) | 179 static void display_about_box(HWND hWnd) |
133 { | 180 { |
134 char about_msg[512]; | 181 char about_msg[512]; |
135 snprintf(about_msg, sizeof(about_msg), MP_TITLE "\n" COPYRIGHT, "MPlayer"); | 182 snprintf(about_msg, sizeof(about_msg), MP_TITLE "\n" COPYRIGHT, "MPlayer"); |
136 MessageBox(hWnd, about_msg, "About", MB_OK); | 183 MessageBox(hWnd, about_msg, acp(MSGTR_About), MB_OK); |
137 } | 184 } |
138 | 185 |
139 static image *get_drawground(HWND hwnd) | 186 static image *get_drawground(HWND hwnd) |
140 { | 187 { |
141 gui_t * gui = (gui_t *) GetWindowLongPtr(hwnd, GWLP_USERDATA); | 188 gui_t * gui = (gui_t *) GetWindowLongPtr(hwnd, GWLP_USERDATA); |
374 { | 421 { |
375 static char path[MAX_PATH]; | 422 static char path[MAX_PATH]; |
376 BROWSEINFO bi; | 423 BROWSEINFO bi; |
377 LPITEMIDLIST pidl; | 424 LPITEMIDLIST pidl; |
378 memset(&bi, 0, sizeof(BROWSEINFO)); | 425 memset(&bi, 0, sizeof(BROWSEINFO)); |
379 bi.lpszTitle = "Choose a Directory..."; | 426 bi.lpszTitle = acp(MSGTR_DirectorySelect); |
380 pidl = SHBrowseForFolder(&bi); | 427 pidl = SHBrowseForFolder(&bi); |
381 if (SHGetPathFromIDList(pidl, path)) | 428 if (SHGetPathFromIDList(pidl, path)) |
382 { | 429 { |
383 gui->playlist->clear_playlist(gui->playlist); | 430 gui->playlist->clear_playlist(gui->playlist); |
384 adddirtoplaylist(gui->playlist, path, TRUE); | 431 adddirtoplaylist(gui->playlist, path, TRUE); |
925 { | 972 { |
926 static char path[MAX_PATH]; | 973 static char path[MAX_PATH]; |
927 BROWSEINFO bi; | 974 BROWSEINFO bi; |
928 LPITEMIDLIST pidl; | 975 LPITEMIDLIST pidl; |
929 memset(&bi, 0, sizeof(BROWSEINFO)); | 976 memset(&bi, 0, sizeof(BROWSEINFO)); |
930 bi.lpszTitle = "Choose a Directory..."; | 977 bi.lpszTitle = acp(MSGTR_DirectorySelect); |
931 pidl = SHBrowseForFolder(&bi); | 978 pidl = SHBrowseForFolder(&bi); |
932 if (SHGetPathFromIDList(pidl, path)) | 979 if (SHGetPathFromIDList(pidl, path)) |
933 { | 980 { |
934 gui->playlist->clear_playlist(gui->playlist); | 981 gui->playlist->clear_playlist(gui->playlist); |
935 adddirtoplaylist(gui->playlist, path, TRUE); | 982 adddirtoplaylist(gui->playlist, path, TRUE); |
1142 static void create_menu(gui_t *gui) | 1189 static void create_menu(gui_t *gui) |
1143 { | 1190 { |
1144 gui->diskmenu = CreatePopupMenu(); | 1191 gui->diskmenu = CreatePopupMenu(); |
1145 gui->menu=CreatePopupMenu(); | 1192 gui->menu=CreatePopupMenu(); |
1146 gui->trayplaymenu = CreatePopupMenu(); | 1193 gui->trayplaymenu = CreatePopupMenu(); |
1147 AppendMenu(gui->menu, MF_STRING | MF_POPUP, (UINT_PTR) gui->trayplaymenu, "Open..."); | 1194 AppendMenu(gui->menu, MF_STRING | MF_POPUP, (UINT_PTR) gui->trayplaymenu, acp(MSGTR_MENU_Open)); |
1148 AppendMenu(gui->trayplaymenu, MF_STRING, IDFILE_OPEN, "File..."); | 1195 AppendMenu(gui->trayplaymenu, MF_STRING, IDFILE_OPEN, acp(MSGTR_MENU_PlayFile)); |
1149 AppendMenu(gui->trayplaymenu, MF_STRING, IDURL_OPEN, "Url..."); | 1196 AppendMenu(gui->trayplaymenu, MF_STRING, IDURL_OPEN, acp(MSGTR_MENU_PlayURL)); |
1150 AppendMenu(gui->trayplaymenu, MF_STRING, IDDIR_OPEN, "Directory..."); | 1197 AppendMenu(gui->trayplaymenu, MF_STRING, IDDIR_OPEN, acp(MSGTR_MENU_PlayDirectory)); |
1151 AppendMenu(gui->menu, MF_SEPARATOR, 0, 0); | 1198 AppendMenu(gui->menu, MF_SEPARATOR, 0, 0); |
1152 AppendMenu(gui->menu, MF_STRING | MF_POPUP, (UINT_PTR) gui->diskmenu, "Play &CD/DVD/VCD/SVCD"); | 1199 AppendMenu(gui->menu, MF_STRING | MF_POPUP, (UINT_PTR) gui->diskmenu, acp(MSGTR_MENU_PlayDisc)); |
1153 AppendMenu(gui->menu, MF_SEPARATOR, 0, 0); | 1200 AppendMenu(gui->menu, MF_SEPARATOR, 0, 0); |
1154 AppendMenu(gui->menu, MF_STRING, IDSUBTITLE_OPEN, "Open Subtitle"); | 1201 AppendMenu(gui->menu, MF_STRING, IDSUBTITLE_OPEN, acp(MSGTR_MENU_LoadSubtitle)); |
1155 AppendMenu(gui->menu, MF_STRING, ID_SKINBROWSER, "Skin Browser"); | 1202 AppendMenu(gui->menu, MF_STRING, ID_SKINBROWSER, acp(MSGTR_MENU_SkinBrowser)); |
1156 AppendMenu(gui->menu, MF_SEPARATOR, 0, 0); | 1203 AppendMenu(gui->menu, MF_SEPARATOR, 0, 0); |
1157 AppendMenu(gui->menu, MF_STRING, ID_PREFS, "Preferences"); | 1204 AppendMenu(gui->menu, MF_STRING, ID_PREFS, acp(MSGTR_MENU_Preferences)); |
1158 AppendMenu(gui->menu, MF_STRING, ID_CONSOLE, "Debug Console"); | 1205 AppendMenu(gui->menu, MF_STRING, ID_CONSOLE, acp(MSGTR_MENU_DebugConsole)); |
1159 AppendMenu(gui->menu, MF_STRING, ID_ONLINEHELP, "Online Help"); | 1206 AppendMenu(gui->menu, MF_STRING, ID_ONLINEHELP, acp(MSGTR_MENU_OnlineHelp)); |
1160 AppendMenu(gui->menu, MF_STRING, IDHELP_ABOUT, "About"); | 1207 AppendMenu(gui->menu, MF_STRING, IDHELP_ABOUT, acp(MSGTR_MENU_AboutMPlayer)); |
1161 AppendMenu(gui->menu, MF_SEPARATOR, 0, 0); | 1208 AppendMenu(gui->menu, MF_SEPARATOR, 0, 0); |
1162 AppendMenu(gui->menu, MF_STRING, IDEXIT, "&Exit"); | 1209 AppendMenu(gui->menu, MF_STRING, IDEXIT, acp(MSGTR_MENU_Exit)); |
1163 } | 1210 } |
1164 | 1211 |
1165 static void create_traymenu(gui_t *gui) | 1212 static void create_traymenu(gui_t *gui) |
1166 { | 1213 { |
1167 gui->traymenu = CreatePopupMenu(); | 1214 gui->traymenu = CreatePopupMenu(); |
1168 gui->trayplaybackmenu = CreatePopupMenu(); | 1215 gui->trayplaybackmenu = CreatePopupMenu(); |
1169 AppendMenu(gui->traymenu, MF_STRING | MF_POPUP, (UINT_PTR) gui->trayplaymenu, "Open..."); | 1216 AppendMenu(gui->traymenu, MF_STRING | MF_POPUP, (UINT_PTR) gui->trayplaymenu, acp(MSGTR_MENU_Open)); |
1170 AppendMenu(gui->traymenu, MF_SEPARATOR, 0, 0); | 1217 AppendMenu(gui->traymenu, MF_SEPARATOR, 0, 0); |
1171 AppendMenu(gui->traymenu, MF_STRING | MF_POPUP, (UINT_PTR) gui->trayplaybackmenu, "Playback"); | 1218 AppendMenu(gui->traymenu, MF_STRING | MF_POPUP, (UINT_PTR) gui->trayplaybackmenu, acp(MSGTR_MENU_Playing)); |
1172 AppendMenu(gui->trayplaybackmenu, MF_STRING, ID_SEEKB, "Seek Backwards"); | 1219 AppendMenu(gui->trayplaybackmenu, MF_STRING, ID_SEEKB, acp(MSGTR_MENU_SeekBack)); |
1173 AppendMenu(gui->trayplaybackmenu, MF_STRING, ID_PTRACK, "Previous Track"); | 1220 AppendMenu(gui->trayplaybackmenu, MF_STRING, ID_PTRACK, acp(MSGTR_MENU_PrevStream)); |
1174 AppendMenu(gui->trayplaybackmenu, MF_STRING, ID_PLAY, "Play/Pause"); | 1221 AppendMenu(gui->trayplaybackmenu, MF_STRING, ID_PLAY, acp(MSGTR_MENU_Play "/" MSGTR_MENU_Pause)); |
1175 AppendMenu(gui->trayplaybackmenu, MF_STRING, ID_STOP, "Stop"); | 1222 AppendMenu(gui->trayplaybackmenu, MF_STRING, ID_STOP, acp(MSGTR_MENU_Stop)); |
1176 AppendMenu(gui->trayplaybackmenu, MF_STRING, ID_NTRACK, "Next Track"); | 1223 AppendMenu(gui->trayplaybackmenu, MF_STRING, ID_NTRACK, acp(MSGTR_MENU_NextStream)); |
1177 AppendMenu(gui->trayplaybackmenu, MF_STRING, ID_SEEKF, "Seek Forwards"); | 1224 AppendMenu(gui->trayplaybackmenu, MF_STRING, ID_SEEKF, acp(MSGTR_MENU_SeekForw)); |
1178 AppendMenu(gui->traymenu, MF_SEPARATOR, 0, 0); | 1225 AppendMenu(gui->traymenu, MF_SEPARATOR, 0, 0); |
1179 AppendMenu(gui->traymenu, MF_STRING, ID_MUTE, "Toggle Mute"); | 1226 AppendMenu(gui->traymenu, MF_STRING, ID_MUTE, acp(MSGTR_MENU_Mute)); |
1180 AppendMenu(gui->traymenu, MF_SEPARATOR, 0, 0); | 1227 AppendMenu(gui->traymenu, MF_SEPARATOR, 0, 0); |
1181 AppendMenu(gui->traymenu, MF_STRING, IDSUBTITLE_OPEN, "Open Subtitle"); | 1228 AppendMenu(gui->traymenu, MF_STRING, IDSUBTITLE_OPEN, acp(MSGTR_MENU_LoadSubtitle)); |
1182 AppendMenu(gui->traymenu, MF_STRING, ID_PLAYLIST, "Playlist"); | 1229 AppendMenu(gui->traymenu, MF_STRING, ID_PLAYLIST, acp(MSGTR_MENU_PlayList)); |
1183 AppendMenu(gui->traymenu, MF_SEPARATOR, 0, 0); | 1230 AppendMenu(gui->traymenu, MF_SEPARATOR, 0, 0); |
1184 AppendMenu(gui->traymenu, MF_STRING, ID_SHOWHIDE, "Show/Hide"); | 1231 AppendMenu(gui->traymenu, MF_STRING, ID_SHOWHIDE, acp(MSGTR_MENU_ShowHide)); |
1185 AppendMenu(gui->traymenu, MF_SEPARATOR, 0, 0); | 1232 AppendMenu(gui->traymenu, MF_SEPARATOR, 0, 0); |
1186 AppendMenu(gui->traymenu, MF_STRING, ID_PREFS, "Preferences"); | 1233 AppendMenu(gui->traymenu, MF_STRING, ID_PREFS, acp(MSGTR_MENU_Preferences)); |
1187 AppendMenu(gui->traymenu, MF_STRING, ID_CONSOLE, "Debug Console"); | 1234 AppendMenu(gui->traymenu, MF_STRING, ID_CONSOLE, acp(MSGTR_MENU_DebugConsole)); |
1188 AppendMenu(gui->traymenu, MF_STRING, ID_ONLINEHELP, "Online Help"); | 1235 AppendMenu(gui->traymenu, MF_STRING, ID_ONLINEHELP, acp(MSGTR_MENU_OnlineHelp)); |
1189 AppendMenu(gui->traymenu, MF_STRING, IDHELP_ABOUT, "About"); | 1236 AppendMenu(gui->traymenu, MF_STRING, IDHELP_ABOUT, acp(MSGTR_MENU_AboutMPlayer)); |
1190 AppendMenu(gui->traymenu, MF_SEPARATOR, 0, 0); | 1237 AppendMenu(gui->traymenu, MF_SEPARATOR, 0, 0); |
1191 AppendMenu(gui->traymenu, MF_STRING, IDEXIT, "&Exit"); | 1238 AppendMenu(gui->traymenu, MF_STRING, IDEXIT, acp(MSGTR_MENU_Exit)); |
1192 } | 1239 } |
1193 | 1240 |
1194 static void create_submenu(gui_t *gui) | 1241 static void create_submenu(gui_t *gui) |
1195 { | 1242 { |
1196 gui->submenu = CreatePopupMenu(); | 1243 gui->submenu = CreatePopupMenu(); |
1197 gui->dvdmenu = CreatePopupMenu(); | 1244 gui->dvdmenu = CreatePopupMenu(); |
1198 gui->aspectmenu = CreatePopupMenu(); | 1245 gui->aspectmenu = CreatePopupMenu(); |
1199 gui->subtitlemenu = CreatePopupMenu(); | 1246 gui->subtitlemenu = CreatePopupMenu(); |
1200 AppendMenu(gui->submenu, MF_STRING | MF_POPUP, (UINT_PTR) gui->trayplaymenu, "Open..."); | 1247 AppendMenu(gui->submenu, MF_STRING | MF_POPUP, (UINT_PTR) gui->trayplaymenu, acp(MSGTR_MENU_Open)); |
1201 AppendMenu(gui->submenu, MF_SEPARATOR, 0, 0); | 1248 AppendMenu(gui->submenu, MF_SEPARATOR, 0, 0); |
1202 AppendMenu(gui->submenu, MF_STRING, ID_SEEKB, "Seek Backwards"); | 1249 AppendMenu(gui->submenu, MF_STRING, ID_SEEKB, acp(MSGTR_MENU_SeekBack)); |
1203 AppendMenu(gui->submenu, MF_STRING, ID_PTRACK, "Previous Track"); | 1250 AppendMenu(gui->submenu, MF_STRING, ID_PTRACK, acp(MSGTR_MENU_PrevStream)); |
1204 AppendMenu(gui->submenu, MF_STRING, ID_PLAY, "Play/Pause"); | 1251 AppendMenu(gui->submenu, MF_STRING, ID_PLAY, acp(MSGTR_MENU_Play "/" MSGTR_MENU_Pause)); |
1205 AppendMenu(gui->submenu, MF_STRING, ID_STOP, "Stop"); | 1252 AppendMenu(gui->submenu, MF_STRING, ID_STOP, acp(MSGTR_MENU_Stop)); |
1206 AppendMenu(gui->submenu, MF_STRING, ID_NTRACK, "Next Track"); | 1253 AppendMenu(gui->submenu, MF_STRING, ID_NTRACK, acp(MSGTR_MENU_NextStream)); |
1207 AppendMenu(gui->submenu, MF_STRING, ID_SEEKF, "Seek Forwards"); | 1254 AppendMenu(gui->submenu, MF_STRING, ID_SEEKF, acp(MSGTR_MENU_SeekForw)); |
1208 AppendMenu(gui->submenu, MF_SEPARATOR, 0, 0); | 1255 AppendMenu(gui->submenu, MF_SEPARATOR, 0, 0); |
1209 AppendMenu(gui->submenu, MF_STRING, ID_FULLSCREEN, "Toggle Fullscreen"); | 1256 AppendMenu(gui->submenu, MF_STRING, ID_FULLSCREEN, acp(MSGTR_MENU_FullScreen)); |
1210 AppendMenu(gui->submenu, MF_STRING, ID_MUTE, "Toggle Mute"); | 1257 AppendMenu(gui->submenu, MF_STRING, ID_MUTE, acp(MSGTR_MENU_Mute)); |
1211 AppendMenu(gui->submenu, MF_SEPARATOR, 0, 0); | 1258 AppendMenu(gui->submenu, MF_SEPARATOR, 0, 0); |
1212 AppendMenu(gui->submenu, MF_STRING | MF_POPUP, (UINT_PTR) gui->aspectmenu, "Aspect Ratio"); | 1259 AppendMenu(gui->submenu, MF_STRING | MF_POPUP, (UINT_PTR) gui->aspectmenu, acp(MSGTR_MENU_AspectRatio)); |
1213 AppendMenu(gui->submenu, MF_STRING | MF_POPUP, (UINT_PTR) gui->subtitlemenu, "Subtitle Options"); | 1260 AppendMenu(gui->submenu, MF_STRING | MF_POPUP, (UINT_PTR) gui->subtitlemenu, acp(MSGTR_MENU_Subtitles)); |
1214 AppendMenu(gui->submenu, MF_STRING | MF_POPUP, (UINT_PTR) gui->dvdmenu, "DVD Options"); | 1261 AppendMenu(gui->submenu, MF_STRING | MF_POPUP, (UINT_PTR) gui->dvdmenu, acp(MSGTR_MENU_DVD)); |
1215 #ifdef CONFIG_DVDREAD | 1262 #ifdef CONFIG_DVDREAD |
1216 AppendMenu(gui->dvdmenu, MF_STRING | MF_GRAYED, ID_CHAPTERSEL, "Select Title/Chapter..."); | 1263 AppendMenu(gui->dvdmenu, MF_STRING | MF_GRAYED, ID_CHAPTERSEL, acp(MSGTR_SelectChapter)); |
1217 #endif | 1264 #endif |
1218 AppendMenu(gui->subtitlemenu, MF_STRING, IDSUB_TOGGLE, "Subtitle Visibility On/Off"); | 1265 AppendMenu(gui->subtitlemenu, MF_STRING, IDSUB_TOGGLE, acp(MSGTR_MENU_SubtitlesOnOff)); |
1219 AppendMenu(gui->subtitlemenu, MF_STRING, IDSUB_CYCLE, "Cycle Subtitle Languages"); | 1266 AppendMenu(gui->subtitlemenu, MF_STRING, IDSUB_CYCLE, acp(MSGTR_MENU_SubtitleLanguages)); |
1220 AppendMenu(gui->aspectmenu, MF_STRING, ID_ASPECT1, "Set 16:9"); | 1267 AppendMenu(gui->aspectmenu, MF_STRING, ID_ASPECT1, "16:9"); |
1221 AppendMenu(gui->aspectmenu, MF_STRING, ID_ASPECT2, "Set 4:3"); | 1268 AppendMenu(gui->aspectmenu, MF_STRING, ID_ASPECT2, "4:3"); |
1222 AppendMenu(gui->aspectmenu, MF_STRING, ID_ASPECT3, "Set 2.35"); | 1269 AppendMenu(gui->aspectmenu, MF_STRING, ID_ASPECT3, "2.35"); |
1223 AppendMenu(gui->aspectmenu, MF_SEPARATOR, 0, 0); | 1270 AppendMenu(gui->aspectmenu, MF_SEPARATOR, 0, 0); |
1224 AppendMenu(gui->aspectmenu, MF_STRING, ID_ASPECT4, "Original Aspect"); | 1271 AppendMenu(gui->aspectmenu, MF_STRING, ID_ASPECT4, acp(MSGTR_MENU_Original)); |
1225 AppendMenu(gui->submenu, MF_SEPARATOR, 0, 0); | 1272 AppendMenu(gui->submenu, MF_SEPARATOR, 0, 0); |
1226 AppendMenu(gui->submenu, MF_STRING, IDEXIT, "&Exit"); | 1273 AppendMenu(gui->submenu, MF_STRING, IDEXIT, acp(MSGTR_MENU_Exit)); |
1227 } | 1274 } |
1228 | 1275 |
1229 static void maketransparent(HWND hwnd, COLORREF crTransparent) | 1276 static void maketransparent(HWND hwnd, COLORREF crTransparent) |
1230 { | 1277 { |
1231 HDC mdc = GetDC(hwnd); | 1278 HDC mdc = GetDC(hwnd); |