Metadata-Version: 2.1
Name: klocmod
Version: 0.1.0
Summary: A simple module providing facilities to localize small programs via textual files.
Home-page: https://github.com/kozalosev/klocmod
Author: Leonid Kozarin
Author-email: kozalo@sadbot.ru
License: MIT
Description: klocmod вЂ” Kozalo's Localization Module
        ======================================
        
        *Screw you, gettext! I don't wanna bother of compiling strings into binary files!*
        
        This module provides a very simple, suboptimal way for localizing your scripts, bots or applications. The advantage is
        its simplicity: to supply some sets of different string literals for different languages, you just need a simple JSON or
        INI file (or even a dict) fed to the library. After that, the only thing you should take care of is to get an instance
        of the dictionary for a specific language and extract messages from it by key values.
        
        All you mostly want is the `LocalizationsContainer` class. In particular, its static method 
        `LocalizationsContainer.from_file()` that reads a localization file and returns an instance of the factory. The factory
        is supposed to produce instances of the `LanguageDictionary` class. Most likely, you will encounter instances of its
        subclass вЂ” the `SpecificLanguageDictionary` class (the base class is only used as a fallback that returns passed key
        values back).
        
        Examples of localization files
        ------------------------------
        
        ### JSON (language first)
        
        
        ```json
        {
          "en": {
            "yes": "yes",
            "no": "no"
          },
          "ru-RU": {
            "yes": "РґР°",
            "no": "РЅРµС‚"
          }
        }
        ```
        
        ### JSON (phrase first)
        
        ```json
        {
          "yes": {
            "en": "yes",
            "ru-RU": "РґР°"
          },
          "no": {
            "en": "no",
            "ru-RU": "РЅРµС‚"
          }
        }
        ```
        
        ### INI
        
        ```ini
        [DEFAULT]
        yes = yes
        no = no
        
        [ru-RU]
        yes = РґР°
        no = РЅРµС‚
        ```
        
        
        Code example
        ------------
        
        ```python
        from klocmod import LocalizationsContainer
        
        localizations = LocalizationsContainer.from_file("localization.json")
        ru = localizations.get_lang("ru")
        # or
        en = localizations.get_lang()    # get default language
        # then
        print(ru['yes'])    # output: РґР°
        # alternative ways to get a specific phrase:
        localizations.get_phrase("ru-RU", "no")
        localizations['ru-RU']['no']
        ```
        
Keywords: localization library
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development :: Internationalization
Classifier: Topic :: Software Development :: Libraries
Description-Content-Type: text/markdown
