[Include] [MySQL R41-2] vlang - Create Messages for Multiple Languages

Started by SA:MP, May 10, 2023, 02:54 PM

Previous topic - Next topic

1 Member and 40 Guests are viewing this topic.

itacat.ru

МФО делают получение займов простым и быстрым, потому что их основной приоритет — удовлетворение срочных потребностей клиентов микрозаймы без проверок и отказов . Они понимают, что людям нужны деньги здесь и сейчас, а не через неделю займы новые мфо 2024 . Поэтому единственное, что требуется для оформления займа, — это паспорт займ на карту срочно . Заявка подается онлайн, без проверки кредитной истории и дополнительных документов микрозайм на карту . Это выгодно и для клиентов, и для компаний: первые получают средства мгновенно, вторые — стабильный доход благодаря высокому проценту по краткосрочным займам онлайн займы без отказа и проверок .
Для всех мфо на карту с плохой историей  также возможность получить до 100 тысяч рублей по паспорту онлайн – выдача займов всем от лучших МФО России

seo18.su

Желаете, чтобы ваш сайт поднялся в топе поисковых запросов и привлекал больше пользователей? Digital компания ПАРОВОЗ способно воплотить это в жизнь! Мы профессионально занимаемся продвижения в поисковых системах  применяя самые результативные методы, которые обеспечат возможность опередить конкурентов и занять верхние места в Google и Yandex.
 
С нами вы получите продвижение сайта цены в месяц  содержащее инновационные SEO-инструменты и многолетний опыт в сфере SEO. Более 10 лет мы результативно развиваем проекты по разным регионам России, и наши удовлетворённые клиенты — прямая тому гарантия. Желаете протестировать? Оцените наш тестовый период и убедитесь, что ПАРОВОЗ — это гарантия результата!
Сегодня создание сайта интернет магазина  - это секрет к успеху любого бизнеса. В условиях высокой конкуренции важно быть на первых позициях в Гугл и Yandex, чтобы собирать целевую аудиторию.

seo18.su

Желаете, чтобы ваш сайт находился в лидирующих позициях поисковых запросов и собирал новых клиентов? Digital студия ПАРОВОЗ поможет превратить это в жизнь! Мы занимаемся смм продвижение цена  применяя самые результативные методы, которые позволят вам опередить конкурентов и достичь топовые места в Google и Яндекс.
 
С нами вы обретете корпоративный сайт под ключ цена  включающее в себя передовые средства SEO и многолетний опыт работы. Более десятилетие мы профессионально продвигаем проекты по разным регионам России, и наши довольные клиенты — лучшее тому подтверждение. Желаете протестировать? Используйте наш пробный период и оцените сами, что ПАРОВОЗ — это путь к успеху!
Сегодня создание сайта интернет магазина  - это секрет к успеху любого бизнеса. В условиях высокой конкуренции важно быть на первых позициях в Гугл и Yandex, чтобы собирать целевую аудиторию.

Ivorygug

Воспользуйтесь нашей подборкой: взять займ онлайн на карту без отказа с минимальной ставкой 0.8% доступны для всех с 18 лет.
Никаких отказов! Получите до 30 000 рублей на именную карту — наши кредит онлайн на карту без отказа срочно доступны каждому.

Ivorygug

Неважно, какая у вас кредитная история! Получите кредит займ онлайн срочно без отказа до 30 000 рублей на любую банковскую карту.
Никаких отказов! Получите до 30 000 рублей на именную карту — наши кредит онлайн на карту без отказа срочно доступны каждому.

Оформите микрозайм за 5 м

Представьте: вы оформляете займ и возвращаете ровно столько, сколько взяли — ни копейкой больше. Звучит как фантастика? На самом деле это реальность, и на нашем сайте вы найдете самые выгодные экспресс-займы под 0% для новых клиентов. Хотите узнать, как это работает? Всё просто! Эти предложения созданы специально для тех, кто впервые обращается в МФО. Быстрое одобрение, моментальное перечисление средств на карту и никаких переплат! На странице вас ждут актуальные предложения 2024 года, которые помогут решить финансовые вопросы без лишних затрат. Не упустите шанс взять деньги бесплатно!
Наш сайт предлагает займы под минимальный процент

Mirtinvest.ru быстрые зай

На mirtinvest.ru тебя ждут более 40 надёжных МФО, которые выдают микрокредиты на карту онлайн без отказов! Для всех от 18 лет, с минимальными требованиями и ставкой не более 0,8% в день — это твой шанс получить деньги быстро и без стресса. Мы работаем только с лицензированными компаниями, так что можешь быть уверен в безопасности сделки. Оформляй займ прямо сейчас и забудь про финансовые сложности!

Baikalwheels.ru

Если вы хотите придать уникальность своему автомобилю и создать неповторимый образ, то на сайте baikalwheels.ru у вас предлагается вариант купить литые диски на 17  лучших мировых брендов. В каталоге представлены такие марки, как Replika, Nitro, Legeartis и K&K, которые известны надежностью. Размеры варьируются от 16 до 22 дюймов, что позволяет подобрать идеальные диски для любых автомобилей — от седанов до внедорожников.

займы без отказа

Больше никаких отказов! mirtinvest.ru предлагает вам подборку проверенных МФО, выдающих займы онлайн без звонков и лишних проверок. Основные требования — это наличие паспорта и именной банковской карты. Мы гарантируем одобрение для 90% заявок на суммы до 30 000 рублей. Убедитесь, что получить займ может быть легко и быстро. Наш портал — это ваш надёжный путь к срочной финансовой помощи.

Оформи займ за минуту на

В условиях современного финансового рынка найти МФО, готовую выдать займ без отказа, кажется настоящей удачей. Однако, такие предложения существуют, и на нашем сайте собраны лучшие из них. Многие заемщики сталкиваются с отказами из-за испорченной кредитной истории, но на странице представлена подборка компаний, которые готовы предоставить займ практически каждому. Быстрое оформление заявки, минимальные требования и высокий процент одобрений — это реальные возможности, доступные каждому. Наши журналисты исследовали рынок и выбрали МФО с наибольшей вероятностью положительного решения. Узнайте, как быстро получить деньги на карту, без отказа и без лишних проверок.
Займы под 0% доступны каждому на сайте

Mfozaima

Новые займы с мгновенной выдачей без проверок. Получите деньги быстро и просто.

Mirtinvest.ru

На mirtinvest.ru ты найдёшь более 40 проверенных МФО, которые выдают микрокредиты онлайн без отказов. Для всех от 18 лет, с минимальными требованиями и ставкой не выше 0,8% в день — это настоящий шанс решить свои финансовые вопросы быстро и безопасно. Мы работаем только с лицензированными компаниями, так что можешь доверять нам. Пора действовать — займи деньги легко и без забот!

Ремонт моноблоков в Москв

Профессиональный сервисный центр по ремонту моноблоков в Москве.
Мы предлагаем: сервис ремонт моноблоков
Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

SA:MP

[Include] [MySQL R41-2] vlang - Create Messages for Multiple Languages

vlang

Build 2 - Beta Release - Last Update: 11/6/2020



Sometimes I wanted to translate my game script in multiple languages and for all the features I have, not for client messages, game texts or dialogues only but for other features, too.



I didn't really try to search for one because I had some ideas and I wanted to apply them nonetheless, so, anyway, I thought to share it with you guys and see what you think about it too.



Additional Requirements
Information




Code:

    +---------------------------------------------------------------------------------------------------------+

    File information
    ----------------

    vlang - Create & Manage server langauge(s) and server messages
    Build 2 - Beta (11/6/2020)

    Author: H2O
    Licensed under GNU GPLv3

    © 2018-2020 H2O Multiplayer. All rights reserved.
    Website: h2omultiplayer.com

    Table Structure
    ---------------

    The following tables has to exist in your database for vlang to work.
    If ever asked to provide a MySQL handle, use your gamemode's.

    * Languages
        + ID ( Language ID - Primary key - Auto increment - INT(11) )
        + LanguageName ( The name of created language - Unique key - TINYTEXT(25) )
    * Messages
        + ID ( Message - Primary - INT(11) )
        + LanguageId ( The language ID that this message is created for - INT(11) )
        + Identifier ( The identifier used to search for the message, short description - VARCHAR(255) )
        + Message ( The actual long message we want to send :) - VARCHAR(1024) )

    * is table, + is column

    Dependencies
    ------------

    * a_mysql - The MySQL Plugin (Recommended version: R41-2) - Originally made by BlueG and maintained later by maddinat0r
    * y_hooks - included in the YSI library [Useful for hooking functions/callbacks/natives] - Original Author: ******
    * y_va - also included in the YSI library [We use this to format our messages using arguments] - Original Author: ******
    * GVar - Made by Incognito - We will use this instead of using array to return data directly.
    * a_samp - Made by the SA-MP team

    Remarks
    -------

    * You need to define 'FILTERSCRIPT' in case this script is to be used in a filterscript and not a gamemode.
    * This include uses threaded MySQL queries, which do not run in the server's main thread.
    * As a result of the above remark, the following precautions should be considered:
        - Language creation and message loading isn't instant and depends on how fast the query is excuted.
        - Rest of code already processes without pausing till the query is executed.
        - That means you can't return a message straight after loading/creating it.
    * Language has to be created first before returning any message coming from it.
    * All the messages for a specific language get automatically loaded once the language itself is loaded.
    * Do not use vL_CreateMessage if the messages for specific language already exist, they will get loaded automatically.

    Configuration
    -------------

    * MAX_VLANGS - The system will be told to stop creating languages after it meets this value
    * MAX_VMESSAGES - The system will stop creating messages ahead of this value
    * (define before including) VLANG_PLAYER_FUNCS - Only if you wish to use the per-player language functions
    * (define before including) VLANG_ALIAS - Only if you wish to use function aliases (look down for info)

    Errors
    ------

    #define VL_ERROR_INVALID_HANDLE         (-2) // If the MySQL connection isn't valid
    #define VL_ERROR_OUT_OF_LIMIT           (-3) // If you exceeded the configuration limits
    #define VL_ERROR_UNABLE_TO_PROCEED      (-4) // If the function failed for some reason to do what is expected
    #define VL_ERROR_DUPLICATE              (-5) // If you try to create a message that ALREADY exists

    The include's debug messages can be useful to troubleshoot issues, not to mention you can create yours!

    Aliases
    -------

    Following aliases can be used if enabled in configuration:
    #define AddLanguage                 vL_CreateLanguage
    #define AddMessage                  vL_CreateMessage
    #define GetLanguagePrefixByName     vL_GetLanguage
    #define GetMessage                  vL_ReturnMessage

    Installation
    ------------

    1. Download and prepare all the dependencies
    2. Create all the tables in the table structure above
    3. Make sure your gamemode or filterscript have a MySQL connection handle
    4. Configure the include to fit your needs
    5. Populate your database with languages/messages data.
    6. Add your language and the messages should be loaded already.
    7. Use your message identifier and language name to simply return the message!

    Functions
    ---------

    Some functions are designed for internal usage, below are list of usable functions:

    - General Functions
         - vL_GetLanguage(const LangName[25])
            Returns: Language Id if the language name exists - or otherwise returns 0

        - vL_CreateLanguage(MySQL: Handle, const LangName[25])
            Parameters:
                - Handle: Your MySQL handle
                - LangName: Language name to create or load
            Returns:
                - An error value if something happened, check errors ^
                - 1 if there was no error
            Notes:
                - Any messages found in the database will AUTOMATICALLY get loaded!

        - vL_ReturnMessage(const LangName[25], const Identifier[255], va_args<>)
            Parameters:
                - LangName: The language (that should be existent) to return messages for
                - Identifier: The unique identifier for this message
                - (optional) va_args: Any arguments needed for your message (specifier args)
            Returns:
                - A null string if language is invalid, or the actual message if succesful (or identifier if message didn't exist!)

    - (if defined) Per player language functions
        - SetPlayerLanguage(playerid, const LangName[25])
            Description: Set a player's language (if exists ONLY) to the specified LangName value

        - GetPlayerLanguage(playerid)
            Description: Returns the player's language name that was assigned to them beforehand (null by default)

    Example Usage

    - Add on initialization
        vL_CreateLanguage(Database, "English");
        vL_CreateLanguage(Database, "Spanish");

    - Add somewhere else
        vL_CreateMessage(Database, "English", "COMMON_IDENT", "Testing...");
    vL_CreateMessage(Database, "Spanish", "COMMON_IDENT", "Pruebas...");

    - Display somewhere else
        print(vL_ReturnMessage("English", "COMMON_IDENT"));
    print(vL_ReturnMessage("Spanish", "COMMON_IDENT"));

    - Expected output
        Both messages should be displayed in the two languages

    It's worth to mention that if you create the messages once, they are stored in the database.
    That means you don't need to keep creating them every time, even if it won't hurt!

    +---------------------------------------------------------------------------------------------------------+

Repository (GitHub)



Before giving the link, please keep the credits and contribute if you can. Share your opinion in replies below, too.

I thank anyone that I used their work to create this include (MySQL plugin maintainers, YSI maintainers, Incognito for GVar and SA-MP team).



You can find it here https://github.com/h2o-variable/samp...udes/vlang.inc



Thanks!


Source: [Include] [MySQL R41-2] vlang - Create Messages for Multiple Languages