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")