Wdrażanie dodatkowych języków na stronie internetowej DJANGO

Korzystanie z Candy Translate to najłatwiejszy sposób na dostarczenie większej liczby języków na stronie internetowej Django. Po prostu wykonaj te 8 prostych kroków, a lokalizacja będzie gotowa za kilka chwil


Zalecamy zacząć od:
Film instruktażowy z przykładem: YouTube
Kod źródłowy przykładowej implementacji: GitHub

1. Pobierz szablon tłumaczeń z tyloma językami, ile chcesz użyć w swojej witrynie

Po prostu przejdź do CandyTranslate.com i otwórz “Pobierz szablon”. Zaznacz języki, których chcesz użyć na swojej stronie internetowej i kliknij Pobierz

2. Wypełnij szablon zawartością tekstu swojej witryny

Każdy tekst, którego używasz na swojej stronie internetowej i chcesz przetłumaczyć, umieść w osobnym wierszu szablonu Excel (kolumna C). Dla każdego wiersza dodaj nazwę strony, w której używany jest tekst i dowolną unikalną nazwę tego pola (kolumny A i B). Wyślij plik do tłumaczy, aby wypełnić pozostałe kolumny

3. Wygeneruj plik CANDY, który zachowa wszystkie informacje o treści Twojej witryny

Przejdź do CandyTranslate.com i otwórz “Generuj Tłumaczenie”. Podaj wypełniony plik template.xls, a otrzymasz candy.py. Umieść ten plik w folderze projektu Django i dodaj ten wiersz kodu na górze plików urls.py i views.py:
views.py :
from . import candy
urls.py :
from translate_app import candy

4. Utwórz adresy URL dla wszystkich przetłumaczonych stronach

W pliku url.py zmień „path” na „*candy.path” jak w poniższym przykładzie. Zmień to dla wszystkich stron, które zostaną zlokalizowane
urlpatterns = [ path('admin/', admin.site.urls), path('', views.home, name = 'home'), path('contact', views.contact, name='contact') ]
urlpatterns = [ path('admin/', admin.site.urls), *candy.path('', views.home, name = 'home'), *candy.path('contact', views.contact, name='contact') ]

5. Spraw aby Twój kod wygenerował przetłumaczone strony

W pliku view.py zmień „render” na „candy.render” jak na poniższym przykładzie. Zmień to we wszystkich funkcjach, które powinny generować przetłumaczoną treść
def home(request): context={ } return render(request, 'home.html', context) def contact(request): context={ } return render(request, 'contact.html', context)
def home(request): context={ } return candy.render(request, 'home.html', context) def contact(request): context={ } return candy.render(request, 'contact.html', context)
Teraz musisz zmienić wszystkie teksty na wszystkich przetłumaczonych stron na zmienne z nazwami odpowiadającymi kolumnom A i B połączonych znakiem „_”. Zamknij nazwę w podwójnych nawiasach kręconych. Więc jeśli w pliku Excel miałeś dla swojego tekstu „home” w kolumnie A i „title” w kolumnie B, to zastąp ten tekst przez {{home_title}}. Sprawdź przykład:
<h1>This is Title of my home page</h1> <p>This is paragraph of text on my home page to welcome users</h1>
<h1>{{home_title}}</h1> <p>{{home_welcome}}</p>
Po tym kroku powinieneś ponownie być w stanie używać swojej witryny w głównym języku. Możesz także ręcznie otwierać przetłumaczone strony, dodając język na koniec linku. Np. Do otwarcia strony hiszpańskiej (es) po prostu dodaj „/es” w ten sposób: www.mypage.com/es

6. Spraw aby Twoje linki otwierały poprawną wersję języka

Po prostu znajdź wszystkie swoje linki { % URL… %} i usuń cytat dla nazw linku i dodaj „candyLink”. Przykład:
{% url "home" %} {% url "contact" %}
{% url candyLink.home %} {% url candyLink.contact %}
Teraz wszystkie twoje linki powinny otworzyć poprawną wersję językową linkowanej strony!

7. Dodaj opcję dla użytkowników, aby przełączać się między dostępnymi językami

Z Candy Translate jest to tylko 1 linia kodu. Wystarczy dodać tę linię (zwykle w <header>)
{{languageMenu|safe}}

8. Spraw, aby Twoje przetłumaczone strony były widoczne i przyjazne dla wyszukiwarek takich jak Google

Bardzo ważne jest posiadanie witryny przyjaznej dla SEO. Musimy zmienić język twoich stron i dodać linkowanie między różnymi językami. Możemy to osiągnąć, wprowadzając małą zmianę kodu i dodając 1 wiersz kodu (w <head>). Zobacz poniżej:
<html lang="en"> <head>
<html lang="{{lang}}"> <head> {{languageReferences|safe}}
Jeśli chcesz, Candy Translate może również wygenerować plik sitemap.xml dla Ciebie … 1 wierszem kodu! Po prostu dodaj tę linię do swoich urlpatterns
urlpatterns = [ path('admin/', admin.site.urls), *candy.path('', views.home, name = 'home'), *candy.path('contact', views.contact, name='contact'), *candy.sitemap() ]

PODSUMOWANIE:

To jest to! Cały proces wdrażania tych zmian może potrwać zaledwie kilka minut.
W przypadku dalszych zmian w tekstach lub tłumaczeniach lub nawet dodawaniu większej liczby języków, zmiany w kodzie nie będzą potrzebne. Po prostu wprowadzaj zmiany w pliku Excel i wygeneruj nowy candy.py


Dodatkowe polecenia, które mogą być pomocne

1. Korzystanie z tłumaczeń poza szablonami

Możesz również łatwo użyć przetłumaczonych tekstów w ramach funkcji widoku.
Przykład używania funkcji translated(request, translationVariable):
def index(request): context={ "home_title2": candy.translated(request, "home_title") + "!!!" } return candy.render(request, 'index.html', context)

2. redirect do poprawnej wersji językowej

Możesz użyć candy.redirect, aby zawsze otwierać prawidłową wersję swojej strony
def index(request): if request.user.is_superuser: redirect("adminPanel")
def index(request): if request.user.is_superuser: candy.redirect(request, "adminPanel")