20 closeSearchBar searchTextModifiedHolder searchNextText |
20 closeSearchBar searchTextModifiedHolder searchNextText |
21 searchBarImageInfoLabelHolder searchPreviousText searchBoxVisible |
21 searchBarImageInfoLabelHolder searchPreviousText searchBoxVisible |
22 searchBarInfoLabelHolder searchTextHolder searchTextView |
22 searchBarInfoLabelHolder searchTextHolder searchTextView |
23 searchBoxView translationsPanel lastPackage' |
23 searchBoxView translationsPanel lastPackage' |
24 classVariableNames:'LastExtractedClass LastExtractedApplicationClass |
24 classVariableNames:'LastExtractedClass LastExtractedApplicationClass |
25 LastExtractedProject' |
25 LastExtractedProject LastProject' |
26 poolDictionaries:'' |
26 poolDictionaries:'' |
27 category:'Interface-UIPainter' |
27 category:'Interface-UIPainter' |
28 ! |
28 ! |
29 |
29 |
30 Object subclass:#AccessCollectingPseudoResourcePack |
30 Object subclass:#AccessCollectingPseudoResourcePack |
1438 requestFilenameFor: lang |
1443 requestFilenameFor: lang |
1439 "Returns a filename to save the language resource and updates the language's info" |
1444 "Returns a filename to save the language resource and updates the language's info" |
1440 |aFilename| |
1445 |aFilename| |
1441 |
1446 |
1442 aFilename := Dialog |
1447 aFilename := Dialog |
1443 requestFileName:'Name of resource file to save ', lang asString, ' :' |
1448 requestFileName:(resources string:'Name of resource file to save %1:' with:lang asString) |
1444 default:nil |
1449 default:nil |
1445 pattern:'*.rs'. |
1450 pattern:'*.rs'. |
1446 |
1451 |
1447 aFilename isEmptyOrNil ifTrue:[^ nil ]. |
1452 aFilename isEmptyOrNil ifTrue:[^ nil ]. |
1448 keyStringsToLanguageMappings atLanguage: lang putFilename: aFilename. |
1453 keyStringsToLanguageMappings atLanguage: lang putFilename: aFilename. |
1449 ^aFilename asFilename |
1454 ^aFilename asFilename |
1450 ! |
1455 ! |
1451 |
1456 |
1452 requestLanguage |
1457 requestLanguage |
1453 |
1458 ^ Dialog |
1454 ^ Dialog choose:'For which language ?' fromList:languagesList lines:10. |
1459 choose:(resources string:'For which language ?') |
|
1460 fromList:languagesList |
|
1461 lines:10. |
1455 ! |
1462 ! |
1456 |
1463 |
1457 requestLanguageToSave |
1464 requestLanguageToSave |
1458 ^ Dialog |
1465 ^ Dialog |
1459 choose:'Which language do you want to save?' |
1466 choose:'Which language do you want to save?' |
1460 fromList:languagesList |
1467 fromList:languagesList |
1461 lines:10 |
1468 lines:10 |
|
1469 ! |
|
1470 |
|
1471 requestPackage |
|
1472 |package| |
|
1473 |
|
1474 package := Dialog |
|
1475 requestProject:(resources string:'Name of Package:') |
|
1476 initialAnswer:LastProject |
|
1477 suggestions:nil. |
|
1478 |
|
1479 package isEmptyOrNil ifTrue:[^ nil ]. |
|
1480 LastProject := package. |
|
1481 ^ package |
1462 ! ! |
1482 ! ! |
1463 |
1483 |
1464 !InternationalLanguageTranslationEditor methodsFor:'images'! |
1484 !InternationalLanguageTranslationEditor methodsFor:'images'! |
1465 |
1485 |
1466 restartSearchBarIcon |
1486 restartSearchBarIcon |
1534 !InternationalLanguageTranslationEditor methodsFor:'menu actions'! |
1554 !InternationalLanguageTranslationEditor methodsFor:'menu actions'! |
1535 |
1555 |
1536 addLanguage |
1556 addLanguage |
1537 |lang| |
1557 |lang| |
1538 |
1558 |
1539 lang := Dialog request:'New language (ISO symbol):'. |
1559 lang := Dialog request:(resources string:'New language (ISO symbol):'). |
1540 lang isEmptyOrNil ifTrue:[^ self]. |
1560 lang isEmptyOrNil ifTrue:[^ self]. |
1541 lang := lang asSymbol. |
1561 self addLanguage:lang |
|
1562 ! |
|
1563 |
|
1564 addLanguage:langArg |
|
1565 |lang| |
|
1566 |
|
1567 lang := langArg asSymbol. |
1542 (keyStringsToLanguageMappings includesLanguage:lang) ifTrue:[^ self ]. |
1568 (keyStringsToLanguageMappings includesLanguage:lang) ifTrue:[^ self ]. |
1543 |
1569 |
1544 keyStringsToLanguageMappings addLanguage:lang. |
1570 keyStringsToLanguageMappings addLanguage:lang. |
1545 self languagesList add:lang. |
1571 self languagesList add:lang. |
1546 self shownLanguages add:lang. |
1572 self shownLanguages add:lang. |
1582 package := Dialog |
1608 package := Dialog |
1583 requestProject:'Package:' |
1609 requestProject:'Package:' |
1584 initialAnswer:defaultPackage |
1610 initialAnswer:defaultPackage |
1585 suggestions:#('foo' 'bar' 'baz'). |
1611 suggestions:#('foo' 'bar' 'baz'). |
1586 package isNil ifTrue:[ |
1612 package isNil ifTrue:[ |
1587 ^Dialog information:(resources string:'No such package exists.') |
1613 ^ self "/ Dialog information:(resources string:'No such package exists.') |
1588 ]. |
1614 ]. |
1589 lastPackage := package. |
1615 lastPackage := package. |
1590 ! |
1616 ! |
1591 |
1617 |
1592 extractTranslationsFromClass |
1618 extractTranslationsFromClass |
1704 aFilename isNil ifTrue:[^ self ]. |
1731 aFilename isNil ifTrue:[^ self ]. |
1705 self readResourceFile:aFilename. |
1732 self readResourceFile:aFilename. |
1706 ] |
1733 ] |
1707 ! |
1734 ! |
1708 |
1735 |
|
1736 menuOpenByPackage |
|
1737 |package| |
|
1738 |
|
1739 self withWaitCursorDo:[ |
|
1740 package := self requestPackage. |
|
1741 package isNil ifTrue:[^ self ]. |
|
1742 self readResourceFileForPackage:package. |
|
1743 ] |
|
1744 ! |
|
1745 |
1709 menuSave |
1746 menuSave |
1710 "Saves the language selected in the fileName from where the language resource was obtained." |
1747 "Saves the language selected in the fileName from where the language resource was obtained." |
1711 |lang| |
1748 |lang| |
1712 |
1749 |
1713 lang := self requestLanguageToSave. |
1750 lang := self requestLanguageToSave. |
1758 |
1795 |
1759 lang := self requestLanguage. |
1796 lang := self requestLanguage. |
1760 lang isNil ifTrue:[^ self ]. |
1797 lang isNil ifTrue:[^ self ]. |
1761 |
1798 |
1762 self readResourceFile:aFilename asLanguage:lang asSymbol |
1799 self readResourceFile:aFilename asLanguage:lang asSymbol |
|
1800 ! |
|
1801 |
|
1802 readResourceFileForPackage:aPackage |
|
1803 |allLanguages lang packageDir resourceDir langFile| |
|
1804 |
|
1805 packageDir := Smalltalk packageDirectoryForPackageId:aPackage. |
|
1806 resourceDir := packageDir asFilename construct:'resources'. |
|
1807 |
|
1808 allLanguages := Set new. |
|
1809 resourceDir directoryContentsAsFilenamesDo:[:eachFile | |
|
1810 eachFile suffix = 'rs' ifTrue:[ |
|
1811 (('##.rs' match:eachFile baseName) |
|
1812 or:[('##-##.rs' match:eachFile baseName)]) ifTrue:[ |
|
1813 allLanguages add:(eachFile withoutSuffix baseName) |
|
1814 ]. |
|
1815 ]. |
|
1816 ]. |
|
1817 |
|
1818 allLanguages addAll:languagesList. |
|
1819 allLanguages := allLanguages asSortedCollection. |
|
1820 |
|
1821 lang := Dialog |
|
1822 choose:(resources string:'For which language ?') |
|
1823 fromList:allLanguages |
|
1824 values:allLanguages |
|
1825 buttons:(resources array:#('All')) |
|
1826 values:#(all) |
|
1827 lines:10 |
|
1828 cancel:nil. |
|
1829 |
|
1830 lang isNil ifTrue:[^ self ]. |
|
1831 |
|
1832 langFile := resourceDir construct:lang,'.rs'. |
|
1833 |
|
1834 lang == #all ifTrue:[ |
|
1835 allLanguages do:[:lang | |
|
1836 self addLanguage:lang. |
|
1837 self readResourceFile:(resourceDir construct:lang,'.rs') asLanguage:lang. |
|
1838 ]. |
|
1839 ] ifFalse:[ |
|
1840 self readResourceFile:langFile asLanguage:lang asSymbol |
|
1841 ]. |
1763 ! |
1842 ! |
1764 |
1843 |
1765 removeLanguage |
1844 removeLanguage |
1766 |lang| |
1845 |lang| |
1767 |
1846 |
2338 ! |
2417 ! |
2339 |
2418 |
2340 readResourceFile:aFilename asLanguage:lang |
2419 readResourceFile:aFilename asLanguage:lang |
2341 |resourcePack inStream lineString encoding decoder sortedKeys remainingKeys| |
2420 |resourcePack inStream lineString encoding decoder sortedKeys remainingKeys| |
2342 |
2421 |
2343 aFilename exists ifFalse:[^ self ]. |
2422 aFilename exists ifFalse:[ |
|
2423 Dialog information:(resources string:'Language file: "%1" does not exist' with:aFilename baseName). |
|
2424 ^ self |
|
2425 ]. |
2344 |
2426 |
2345 resourcePack := ResourcePack new. |
2427 resourcePack := ResourcePack new. |
2346 |
2428 |
2347 inStream := aFilename readStream. |
2429 inStream := aFilename readStream. |
2348 [inStream atEnd] whileFalse:[ |
2430 [inStream atEnd] whileFalse:[ |
2370 |
2452 |
2371 sortedKeys := (resourcePack keys select:[:k | k isString]) asSortedCollection. |
2453 sortedKeys := (resourcePack keys select:[:k | k isString]) asSortedCollection. |
2372 remainingKeys := resourcePack keys select:[:k | k isString not]. |
2454 remainingKeys := resourcePack keys select:[:k | k isString not]. |
2373 |
2455 |
2374 keyStringsToLanguageMappings atLanguage: lang putFilename: aFilename. |
2456 keyStringsToLanguageMappings atLanguage: lang putFilename: aFilename. |
2375 keyStringsToLanguageMappings atLanguage: lang putEncoder: decoder. |
2457 keyStringsToLanguageMappings atLanguage: lang putEncoder: decoder. |
2376 |
2458 |
2377 sortedKeys do:[:k | |
2459 sortedKeys do:[:k | |
2378 keyStringsToLanguageMappings at:k language:lang put:(resourcePack at:k) |
2460 keyStringsToLanguageMappings at:k language:lang put:(resourcePack at:k) sendChange:false |
2379 ]. |
2461 ]. |
2380 remainingKeys do:[:k | |
2462 remainingKeys do:[:k | |
2381 keyStringsToLanguageMappings at:k language:lang put:(resourcePack at:k) |
2463 keyStringsToLanguageMappings at:k language:lang put:(resourcePack at:k) sendChange:false |
2382 ]. |
2464 ]. |
|
2465 keyStringsToLanguageMappings changed. |
2383 ! |
2466 ! |
2384 |
2467 |
2385 saveLanguage: lang |
2468 saveLanguage: lang |
2386 "Saves the language in the fileName from where the language resource was obtained." |
2469 "Saves the language in the fileName from where the language resource was obtained." |
2387 |aFilename| |
2470 |aFilename| |
2770 ! ! |
2853 ! ! |
2771 |
2854 |
2772 !InternationalLanguageTranslationEditor::KeyStringsToLanguageMappings methodsFor:'accessing'! |
2855 !InternationalLanguageTranslationEditor::KeyStringsToLanguageMappings methodsFor:'accessing'! |
2773 |
2856 |
2774 addKey:aKey |
2857 addKey:aKey |
|
2858 self addKey:aKey sendChange:true |
|
2859 ! |
|
2860 |
|
2861 addKey:aKey sendChange:aBoolean |
2775 (keys includes:aKey) ifFalse:[ |
2862 (keys includes:aKey) ifFalse:[ |
2776 keys add:aKey. |
2863 keys add:aKey. |
2777 self changed. |
2864 aBoolean ifTrue:[ self changed ]. |
2778 ] |
2865 ] |
2779 ! |
2866 ! |
2780 |
2867 |
2781 addKeys:aCollectionOfKey |
2868 addKeys:aCollectionOfKey |
2782 keys addAll:aCollectionOfKey. |
2869 keys addAll:aCollectionOfKey. |
2794 ^ (perLanguageMappings at:language) at:aKey ifAbsent:nil |
2881 ^ (perLanguageMappings at:language) at:aKey ifAbsent:nil |
2795 ! |
2882 ! |
2796 |
2883 |
2797 at:aKey language:language put:value |
2884 at:aKey language:language put:value |
2798 self addKey:aKey. |
2885 self addKey:aKey. |
|
2886 (perLanguageMappings at:language) at:aKey put:value. |
|
2887 (self rowForKey:aKey) changed |
|
2888 ! |
|
2889 |
|
2890 at:aKey language:language put:value sendChange:sendChange |
|
2891 self addKey:aKey sendChange:sendChange. |
2799 (perLanguageMappings at:language) at:aKey put:value. |
2892 (perLanguageMappings at:language) at:aKey put:value. |
2800 (self rowForKey:aKey) changed |
2893 (self rowForKey:aKey) changed |
2801 ! |
2894 ! |
2802 |
2895 |
2803 atLanguage: lang putEncoder: aDecoder |
2896 atLanguage: lang putEncoder: aDecoder |