Како пресловити српску ћирилицу у латиницу за WordPress

С обзиром на глобални досег WordPress-а, важно је да многи корисници имају свој садржај доступан у различитим писмима и језицима. Иако WordPress по дифолту подржава српску ћирилицу, платформа не подржава нативно српску латиницу. Међутим, с мало програмерске магије, потпуно је могуће транслитерисати из српске ћирилице у српску латиницу. Ево како то можете постићи.

Предуслови

  • Основно разумевање Питона
  • Приступ вашим WordPress датотекама (путем ФТП-а, cPanel-а или директно ако је хостовано локално)
  • Питон окружење за извршење скрипте

Пре него што почнете са процесом транслитерације, потребно је да поставите српски језик као основни системски језик у WordPress поставкама. Након што сте поставили српски језик:

  1. Повежите се на вашу WordPress инсталацију путем ФТП-а.
  2. Навигирајте до фолдера где се налазе језички фајлови.
  3. Копирајте све фајлове који су везани за српски језик и сачувајте их негде на вашем локалном рачунару.

Да бисте извршили скрипту за транслитерацију (коју се налази даље у тексту), потребно је да следите следеће кораке:

  1. Ако већ немате инсталиран Питон, посетите званичну Питон страницу и преузмите најновију верзију.
  2. Инсталирајте полиб библиотеку користећи пип, Питонов пакетни менаџер. У командној линији или терминалу упишите:
    pip install polib
  3. Покрените ваш омиљени Python IDE или едитор кода.
  4. Направите фолдер и у њему main.py и налепите следећу скрипту:
    import os
    import polib
    import json
    
    def cyrillic_to_latin(text):
        transliteration_map = {
            '\u0410': 'A', '\u0411': 'B', '\u0412': 'V', '\u0413': 'G', '\u0414': 'D', '\u0402': 'Đ',
            '\u0415': 'E', '\u0416': 'Ž', '\u0417': 'Z', '\u0418': 'I', '\u0408': 'J', '\u041A': 'K',
            '\u041B': 'L', '\u0409': 'Lj', '\u041C': 'M', '\u041D': 'N', '\u040A': 'Nj', '\u041E': 'O',
            '\u041F': 'P', '\u0420': 'R', '\u0421': 'S', '\u0428': 'Š', '\u0422': 'T', '\u040B': 'Ć',
            '\u0423': 'U', '\u0424': 'F', '\u0425': 'H', '\u0426': 'C', '\u0427': 'Č', '\u040F': 'Dž',
    
            '\u0430': 'a', '\u0431': 'b', '\u0432': 'v', '\u0433': 'g', '\u0434': 'd', '\u0452': 'đ',
            '\u0435': 'e', '\u0436': 'ž', '\u0437': 'z', '\u0438': 'i', '\u0458': 'j', '\u043A': 'k',
            '\u043B': 'l', '\u0459': 'lj', '\u043C': 'm', '\u043D': 'n', '\u045A': 'nj', '\u043E': 'o',
            '\u043F': 'p', '\u0440': 'r', '\u0441': 's', '\u0448': 'š', '\u0442': 't', '\u045B': 'ć',
            '\u0443': 'u', '\u0444': 'f', '\u0445': 'h', '\u0446': 'c', '\u0447': 'č', '\u045F': 'dž',
        }
    
    
        return ''.join(transliteration_map.get(char, char) for char in text)
    
    def process_po_file(file_path, output_path):
        po = polib.pofile(file_path)
        for entry in po:
            entry.msgstr = cyrillic_to_latin(entry.msgstr)
    
        if 'Language' in po.metadata and po.metadata['Language'] == 'sr_RS':
            po.metadata['Language'] = 'sr_latnRS'
    
        po.save(output_path)
        po.save_as_mofile(output_path.replace('.po', '.mo'))
    
    
    def process_json_file(file_path, output_path):
        with open(file_path, 'r', encoding='utf-8') as json_file:
            data = json.load(json_file)
    
        if "locale_data" in data and "messages" in data["locale_data"]:
            messages = data["locale_data"]["messages"]
    
            if "" in messages and "lang" in messages[""]:
                messages[""]["lang"] = "sr_latnRS"
    
            for key in messages:
                if isinstance(messages[key], list):
                    for i in range(len(messages[key])):
                        messages[key][i] = cyrillic_to_latin(messages[key][i])
                elif isinstance(messages[key], str):
                    messages[key] = cyrillic_to_latin(messages[key])
    
        with open(output_path, 'w', encoding='utf-8') as json_outfile:
            json.dump(data, json_outfile, ensure_ascii=False, indent=4)
    
    
    def process_directory(directory):
        for root, _, files in os.walk(directory):
            for file in files:
                if file.endswith('.po') and 'sr_RS' in file:
                    input_path = os.path.join(root, file)
                    output_file = file.replace('sr_RS', 'sr_latnRS')
                    output_path = os.path.join(root, output_file)
                    
                    process_po_file(input_path, output_path)
                    print(f"Processed: {input_path} -> {output_path}")
    
                elif file.endswith('.json') and 'sr_RS' in file:
                    input_path = os.path.join(root, file)
                    output_file = file.replace('sr_RS', 'sr_latnRS')
                    output_path = os.path.join(root, output_file)
    
                    process_json_file(input_path, output_path)
                    print(f"Processed: {input_path} -> {output_path}")
    
    directory_to_process = r'--putanja do foldera sa ćiriličnim fajlovima iz WordPress-a--'
    process_directory(directory_to_process)
  5. У скрипти потражите линију где се дефинише локација језичких фајлова и промените је тако да одговара локацији где сте претходно сачували српске језичке фајлове.
  6. Сачувајте измене и покрените скрипту.

Након што се скрипта изврши, сви српски језички фајлови ће бити транслитеровани у латиницу и спремни за употребу у вашем WordPress сајту. Следећи кораци ће вас водити кроз процес додавања српске латинице као језика сучеља вашег WordPress сајта:

  1. Повежите се на ваш сервер користећи ФТП клијент.
  2. Навигирајте до фолдера где се налазе језички фајлови (обично се налази унутар wp-content/languages).
  3. Копирајте све нове транслитероване фајлове (оне са ознаком sr_LatnRS) на ову локацију.
  4. Улогујте се на ваш WordPress сајт и идите на Подешавања > Језик сајта.
  5. У листи доступних језика пронаћи ћете нови језик означен као Српски (Латиница). Изаберите га и кликните на дугме за чување подешавања.

Честитамо! Ваш WordPress сајт сада користи српску латиницу као језик сучеља.

Такође, сваки пут када ажурирате WordPress на новију верзију, постоји могућност да су додати нови текстови или измене у језичким фајловима. Да бисте осигурали да је све преведено на српску латиницу, препоручује се да поновите горе наведени процес транслитерације након сваког ажурирања.

 

Напомена: Као аутор овог водича, не преузимам одговорност за било какве проблеме, грешке или оштећења која могу произаћи из коришћења овог метода. Препоручујем да увек правите резервне копије вашег сајта пре него што извршите било какве промене. Све кораке у овом водичу примењујете на сопствену одговорност.

 

Ако тражите услуге развоја софтвера највишег ранга, не тражите даље!

Шта нудим:

  • Развој веб страница: Претворите вашу идеју у потпуно функционалну веб страницу.
  • Креација мобилних апликација: Достигните вашу публику на сваком уређају.
  • Прилагођена софтверска решења: Софтвер прилагођен вашим пословним потребама.
  • Управљање базом података: Осигурајте да су ваши подаци структурирани, сигурни и доступни.
  • Консултације: Нисте сигурни где да почнете? Разговарајмо о најбољим технолошким решењима за ваше циљеве.

Са годинама искуства у техничкој индустрији, усавршио сам своје вештине како бих пружио само најбоље својим клијентима. Претворимо вашу визију у стварност. Контактирајте ме данас да започнемо ваш следећи дигитални пројекат!