57 mainMenu.addMenu(self.__initFiltersMenu()) |
63 mainMenu.addMenu(self.__initFiltersMenu()) |
58 mainMenu.addMenu(self.__initHumanizeMenu()) |
64 mainMenu.addMenu(self.__initHumanizeMenu()) |
59 mainMenu.addMenu(self.__initWebDesignMenu()) |
65 mainMenu.addMenu(self.__initWebDesignMenu()) |
60 mainMenu.addMenu(self.__initStaticMenu()) |
66 mainMenu.addMenu(self.__initStaticMenu()) |
61 mainMenu.addMenu(self.__initCommentsMenu()) |
67 mainMenu.addMenu(self.__initCommentsMenu()) |
62 # TODO: add internationalization tags/filters menu |
68 mainMenu.addMenu(self.__initInternationalizationMenu()) |
63 # TODO: add localization tags/filters menu |
69 # TODO: add localization tags/filters menu |
|
70 mainMenu.addMenu(self.__initlocalizationMenu()) |
64 # TODO: add timezone tags/filters menu |
71 # TODO: add timezone tags/filters menu |
|
72 mainMenu.addMenu(self.__initTimezoneMenu()) |
65 |
73 |
66 def __initTagsMenu(self): |
74 def __initTagsMenu(self): |
67 """ |
75 """ |
68 Private method to initialize the tags menu. |
76 Private method to initialize the tags menu. |
69 |
77 |
512 menu.addAction( |
519 menu.addAction( |
513 self.tr("MS IE Conditional Comment Selected Text"), |
520 self.tr("MS IE Conditional Comment Selected Text"), |
514 lambda: self.__applyTemplate("iecomment")) |
521 lambda: self.__applyTemplate("iecomment")) |
515 |
522 |
516 self.__commentsMenu = menu |
523 self.__commentsMenu = menu |
|
524 return menu |
|
525 |
|
526 def __initInternationalizationMenu(self): |
|
527 """ |
|
528 Private method to initialize the static menu. |
|
529 |
|
530 @return generated menu (QMenu) |
|
531 """ |
|
532 mainMenu = QMenu(self.tr("Internationalization (i18n)")) |
|
533 mainMenu.addAction( |
|
534 self.tr("Load Package"), |
|
535 lambda: self.__applyTemplate("loadi18n")) |
|
536 mainMenu.addSeparator() |
|
537 |
|
538 menu = QMenu(self.tr("Tags"), mainMenu) |
|
539 menu.addAction( |
|
540 self.tr("trans - Translate String or Variable"), |
|
541 lambda: self.__applyTemplate("trans")) |
|
542 menu.addAction( |
|
543 self.tr("trans..as - Translate String into Variable"), |
|
544 lambda: self.__applyTemplate("trans..as")) |
|
545 menu.addSeparator() |
|
546 menu.addAction( |
|
547 self.tr("blocktrans - Translate Block"), |
|
548 lambda: self.__applyTemplate("blocktrans")) |
|
549 menu.addAction( |
|
550 self.tr("blocktrans..with - Translate Block with Attributes"), |
|
551 lambda: self.__applyTemplate("blocktrans..with")) |
|
552 menu.addAction( |
|
553 self.tr("plural - Plural Block"), |
|
554 lambda: self.__applyTemplate("plural")) |
|
555 menu.addAction( |
|
556 self.tr("language - Switch language"), |
|
557 lambda: self.__applyTemplate("language")) |
|
558 menu.addSeparator() |
|
559 menu.addAction( |
|
560 self.tr("get_current_language - Current language"), |
|
561 lambda: self.__applyTemplate("get_current_language")) |
|
562 menu.addAction( |
|
563 self.tr("get_available_languages - Available languages"), |
|
564 lambda: self.__applyTemplate("get_available_languages")) |
|
565 menu.addAction( |
|
566 self.tr("get_current_language_bidi - Current language's" |
|
567 " direction"), |
|
568 lambda: self.__applyTemplate("get_current_language_bidi")) |
|
569 menu.addAction( |
|
570 self.tr("get_language_info - Language Information"), |
|
571 lambda: self.__applyTemplate("get_language_info")) |
|
572 menu.addAction( |
|
573 self.tr("get_language_info_list - Language Information for a list" |
|
574 " of languages"), |
|
575 lambda: self.__applyTemplate("get_language_info_list")) |
|
576 mainMenu.addMenu(menu) |
|
577 |
|
578 menu = QMenu(self.tr("Filters"), mainMenu) |
|
579 menu.addAction( |
|
580 self.tr("language_name - Language name"), |
|
581 lambda: self.__applyTemplate("language_name")) |
|
582 menu.addAction( |
|
583 self.tr("language_name_local - Language name translated"), |
|
584 lambda: self.__applyTemplate("language_name_local")) |
|
585 menu.addAction( |
|
586 self.tr("bidi - Language's direction"), |
|
587 lambda: self.__applyTemplate("bidi")) |
|
588 mainMenu.addMenu(menu) |
|
589 |
|
590 self.__internationalizationMenu = mainMenu |
|
591 return mainMenu |
|
592 |
|
593 def __initlocalizationMenu(self): |
|
594 """ |
|
595 Private method to initialize the static menu. |
|
596 |
|
597 @return generated menu (QMenu) |
|
598 """ |
|
599 mainMenu = QMenu(self.tr("Localization (l10n)")) |
|
600 mainMenu.addAction( |
|
601 self.tr("Load Package"), |
|
602 lambda: self.__applyTemplate("loadl10n")) |
|
603 mainMenu.addSeparator() |
|
604 |
|
605 menu = QMenu(self.tr("Tags"), mainMenu) |
|
606 |
|
607 menu = QMenu(self.tr("Filters"), mainMenu) |
|
608 |
|
609 self.__localizationMenu = mainMenu |
|
610 return mainMenu |
|
611 |
|
612 def __initTimezoneMenu(self): |
|
613 """ |
|
614 Private method to initialize the static menu. |
|
615 |
|
616 @return generated menu (QMenu) |
|
617 """ |
|
618 menu = QMenu(self.tr("Timezone (tz)")) |
|
619 menu.addAction( |
|
620 self.tr("Load Package"), |
|
621 lambda: self.__applyTemplate("loadtz")) |
|
622 menu.addSeparator() |
|
623 |
|
624 self.__timezoneMenu = menu |
517 return menu |
625 return menu |
518 |
626 |
519 def __findTemplateTag(self): |
627 def __findTemplateTag(self): |
520 """ |
628 """ |
521 Private slot to find a template tag and insert its text. |
629 Private slot to find a template tag and insert its text. |
1248 E5MessageBox.critical( |
1356 E5MessageBox.critical( |
1249 None, |
1357 None, |
1250 self.tr("Comment File"), |
1358 self.tr("Comment File"), |
1251 self.tr("""<p>The file <b>{0}</b> could not be""" |
1359 self.tr("""<p>The file <b>{0}</b> could not be""" |
1252 """ read.</p><p>Reason: {1}</p>""").format( |
1360 """ read.</p><p>Reason: {1}</p>""").format( |
1253 str(err))) |
1361 str(err))) |
1254 elif tag == "singlelinecommentdatetime": |
1362 elif tag == "singlelinecommentdatetime": |
1255 templateText = '{{# {0} by {1} #}}'.format( |
1363 templateText = '{{# {0} by {1} #}}'.format( |
1256 datetime.datetime.now().isoformat().split(), |
1364 datetime.datetime.now().isoformat().split(), |
1257 Utilities.getUserName()) |
1365 Utilities.getUserName()) |
1258 elif tag == "htmlcomment": |
1366 elif tag == "htmlcomment": |
1263 tag, ok = IeCommentDialog.getTag(selectedText) |
1371 tag, ok = IeCommentDialog.getTag(selectedText) |
1264 if ok: |
1372 if ok: |
1265 templateText = '<!--{0}-->'.format(tag) |
1373 templateText = '<!--{0}-->'.format(tag) |
1266 replace = True |
1374 replace = True |
1267 |
1375 |
1268 # TODO: add internationalization tags/filters |
1376 #################################################### |
|
1377 ## Internationalization ## |
|
1378 #################################################### |
|
1379 |
|
1380 elif tag == "loadi18n": |
|
1381 templateText = '{% load i18n %}' |
|
1382 ## Tags ## |
|
1383 elif tag == "trans": |
|
1384 if ' ' in selectedText: |
|
1385 selectedText = '"{0}"'.format(selectedText) |
|
1386 templateText = '{{% trans {0} %}}'.format(selectedText) |
|
1387 replace = True |
|
1388 elif tag == "trans..as": |
|
1389 data, ok = DjangoTagInputDialog.getText( |
|
1390 None, |
|
1391 self.tr("Translate String into Variable"), |
|
1392 [self.tr("Enter variable receiving translation:")], |
|
1393 ["translation"]) |
|
1394 if ok: |
|
1395 templateText = '{{% trans "{0}" as {1} %}}'.format( |
|
1396 selectedText, data[0]) |
|
1397 replace = True |
|
1398 elif tag == "blocktrans": |
|
1399 templateText = '{{% blocktrans %}}{0}{{% endblocktrans %}}'.format( |
|
1400 selectedText) |
|
1401 replace = True |
|
1402 elif tag == "blocktrans..with": |
|
1403 data, ok = DjangoTagInputDialog.getText( |
|
1404 None, |
|
1405 self.tr("Translate Block with Attributes"), |
|
1406 [self.tr("Enter attribute binding expressions" |
|
1407 " (space separated):")], |
|
1408 ["myvar1=value1 myvar2=value2"]) |
|
1409 if ok: |
|
1410 templateText = ( |
|
1411 '{{% blocktrans with {0} %}}{1}{{% endblocktrans %}}' |
|
1412 .format(data[0], selectedText)) |
|
1413 replace = True |
|
1414 elif tag == "plural": |
|
1415 templateText = '{{% plural %}} {0}'.format(selectedText) |
|
1416 replace = True |
|
1417 elif tag == "language": |
|
1418 data, ok = DjangoTagInputDialog.getText( |
|
1419 None, |
|
1420 self.tr("Switch language"), |
|
1421 [self.tr("Enter language:")], |
|
1422 ["en"]) |
|
1423 if ok: |
|
1424 templateText = ( |
|
1425 "{{% language '{0}' %}}{1}{{% endlanguage %}}" |
|
1426 .format(data[0], selectedText)) |
|
1427 replace = True |
|
1428 elif tag == "get_current_language": |
|
1429 templateText = '{% get_current_language as LANGUAGE_CODE %}' |
|
1430 elif tag == "get_available_languages": |
|
1431 templateText = '{% get_available_languages as LANGUAGES %}' |
|
1432 elif tag == "get_current_language_bidi": |
|
1433 templateText = '{% get_current_language_bidi as LANGUAGE_BIDI %}' |
|
1434 elif tag == "get_language_info": |
|
1435 data, ok = DjangoTagInputDialog.getText( |
|
1436 None, |
|
1437 self.tr("Language Information"), |
|
1438 [self.tr("Enter language string or variable (empty for" |
|
1439 " LANGUAGE_CODE):")], |
|
1440 ['"en"']) |
|
1441 if ok: |
|
1442 if data[0]: |
|
1443 templateText = ( |
|
1444 '{{% get_language_info for "{0}" as lang %}}' |
|
1445 .format(data[0])) |
|
1446 else: |
|
1447 templateText = ("{% get_language_info for LANGUAGE_CODE" |
|
1448 " as lang %}") |
|
1449 elif tag == "get_language_info_list": |
|
1450 data, ok = DjangoTagInputDialog.getText( |
|
1451 None, |
|
1452 self.tr("Language Information for a list of languages"), |
|
1453 [self.tr("Enter language list variable (empty for" |
|
1454 " LANGUAGES):")], |
|
1455 ["available_languages"]) |
|
1456 if ok: |
|
1457 if data[0]: |
|
1458 templateText = ( |
|
1459 '{{% get_language_info_list for {0} as langs %}}' |
|
1460 .format(data[0])) |
|
1461 else: |
|
1462 templateText = ("{% get_language_info_list for LANGUAGES" |
|
1463 " as langs %}") |
|
1464 ## Filters ## |
|
1465 elif tag == "language_name": |
|
1466 templateText = '|language_name' |
|
1467 elif tag == "language_name_local": |
|
1468 templateText = '|language_name_local' |
|
1469 elif tag == "bidi": |
|
1470 templateText = '|bidi' |
|
1471 |
1269 # TODO: add localization tags/filters |
1472 # TODO: add localization tags/filters |
|
1473 #################################################### |
|
1474 ## Localization ## |
|
1475 #################################################### |
|
1476 |
|
1477 elif tag == "loadl10n": |
|
1478 templateText = '{% load l10n %}' |
|
1479 |
1270 # TODO: add timezone tags/filters |
1480 # TODO: add timezone tags/filters |
|
1481 #################################################### |
|
1482 ## Timezone ## |
|
1483 #################################################### |
|
1484 |
|
1485 elif tag == "loadtz": |
|
1486 templateText = '{% load tz %}' |
|
1487 |
1271 #################################################### |
1488 #################################################### |
1272 ## Fallback: return just the tag name ## |
1489 ## Fallback: return just the tag name ## |
1273 #################################################### |
1490 #################################################### |
1274 |
1491 |
1275 else: |
1492 else: |