Saida mak Django-Rosetta?
Rosetta mak aplikasaun Django ida ne'ebé fasilita prosesu tradusaun ba ita-nia projetu Django sira.
Tanba la esporta models ruma, Rosetta la kria tabela ruma iha ita-nia projetu nia baze-dadus. Rosetta bele instala no dezinstala liu husi aumenta no hasai "rosetta" husi ita-nia projetu INSTALLED_APPS no URL prinsipál ida iha ita-nia file projetuteste/urls.py.
Prerekezitu - Oinsá ita bele Hatama Django-Rosetta ba Projetu/Website?
Atu dezinstala Rosetta, bele comment out ka hasai "rosetta" iha liña INSTALLED_APPS
1. Instala Django-Rosetta
Atu instala django-rosetta ezekuta kódigu tuir mai iha ita-nia projetu django liu husi terminal:
(env) ➜ projetuteste pip install django-rosetta
Tuir mai sei hatudu iha terminal katak ita susesu instala ona django-rosetta hanesan exemplu hatudu iha okos:
(env) ➜ projetuteste pip install django-rosetta
Collecting django-rosetta
Using cached django_rosetta-0.9.8-py3-none-any.whl (111 kB)
Collecting polib>=1.1.0
Using cached polib-1.2.0-py2.py3-none-any.whl (20 kB)
Requirement already satisfied: Django>=2.2 in /Users/ony/projetuteste/env/lib/python3.7/site-packages (from django-rosetta) (3.2.17)
Collecting requests>=2.1.0
Using cached requests-2.28.2-py3-none-any.whl (62 kB)
Requirement already satisfied: sqlparse>=0.2.2 in /Users/ony/projetuteste/env/lib/python3.7/site-packages (from Django>=2.2->django-rosetta) (0.4.3)
Requirement already satisfied: pytz in /Users/ony/projetuteste/env/lib/python3.7/site-packages (from Django>=2.2->django-rosetta) (2022.7.1)
Requirement already satisfied: asgiref<4,>=3.3.2 in /Users/ony/projetuteste/env/lib/python3.7/site-packages (from Django>=2.2->django-rosetta) (3.6.0)
Collecting urllib3<1.27,>=1.21.1
Using cached urllib3-1.26.15-py2.py3-none-any.whl (140 kB)
Collecting idna<4,>=2.5
Using cached idna-3.4-py3-none-any.whl (61 kB)
Collecting certifi>=2017.4.17
Using cached certifi-2022.12.7-py3-none-any.whl (155 kB)
Collecting charset-normalizer<4,>=2
Downloading charset_normalizer-3.1.0-cp37-cp37m-macosx_10_9_x86_64.whl (121 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 121.1/121.1 kB 496.3 kB/s eta 0:00:00
Requirement already satisfied: typing-extensions in /Users/ony/projetuteste/env/lib/python3.7/site-packages (from asgiref<4,>=3.3.2->Django>=2.2->django-rosetta) (4.4.0)
Installing collected packages: polib, urllib3, idna, charset-normalizer, certifi, requests, django-rosetta
Successfully installed certifi-2022.12.7 charset-normalizer-3.1.0 django-rosetta-0.9.8 idna-3.4 polib-1.2.0 requests-2.28.2 urllib3-1.26.15
[notice] A new release of pip is available: 23.0 -> 23.0.1
[notice] To update, run: pip install --upgrade pip
(env) ➜ projetuteste
2. Konfigura iha file settings.py
Iha ita-nia projetu folder/directory nia laran iha file ida naran settings.py, loke file ne'e hodi hatama "rosetta" ba iha laran iha liña INSTALLED_APPS nian, ezemplu:
projetuteste/settings.py
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.gis', 'store_profile', 'shop',
'rosetta', # This is new code ]
Tuir mai ita mos aumenta kódigu foun hanesan iha okos iha liña MIDDLEWARE nian
projetuteste/settings.py
MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', # This is new code 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ]
Ita mos aumenta kódigu foun hanesan iha okos iha liña TEMPLATES, haree ezemplu iha okos
projetuteste/settings.py
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.i18n', # This is new code 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]
projetuteste/settings.py
LANGUAGE_CODE = 'en-us' TIME_ZONE = 'Asia/Dili' # Default is 'UTC', so change this to 'Asia/Dili' USE_I18N = True USE_L10N = True # This is new code USE_TZ = True LANGUAGES = [ ('tet-tl', ('Tetum')), ('en-us', ('English')), ] # Add extra language not provide by django EXTRA_LANG_INFO = { 'tet': { 'bidi': False, # right-to-left 'code': 'tet', 'name': 'Tetum', 'name_local': 'Tetum', # unicode codepoints here }, } LOCALE_PATHS = ( os.path.join(BASE_DIR, 'locale'), ) # Add custom languages not provided by Django # LANG_INFO = dict(django.conf.locale.LANG_INFO.items() + EXTRA_LANG_INFO.items()) django.conf.locale.LANG_INFO.update(EXTRA_LANG_INFO)
3. Hatama URL prinsipál ba urls.py
Iha ita-nia projetu folder/directory nia laran iha file ida naran urls.py, loke file ne'e hodi hatama kódigu sira hanesan tuir mai:
projetuteste/urls.py
from django.conf import settings from django.conf.urls.static import static from django.conf.urls.i18n import i18n_patterns from django.contrib import admin from django.urls import path, include urlpatterns = i18n_patterns( path('', include('shop.urls')), path('admin/', admin.site.urls), path('i18n/', include('django.conf.urls.i18n')), ) if 'rosetta' in settings.INSTALLED_APPS: urlpatterns += [ path('rosetta/', include('rosetta.urls')) ]
Karik ita hatama hotu ona kódigu sira hanesan instrusaun iha leten, ita bele halo ezekuta kódigu tuir mai hodi kria directory/folder no file django.po locale/tet_tl/LC_MESSAGES/django.po
(env) ➜ projetuteste ./manage.py makemessages -l tet --no-location --no-wrapprocessing locale tet_tl
(env) ➜ projetuteste
Ita-nia sei haree ita-nia estrutura file folder/directory "locale" nian laran hanesan iha okos
|____locale
| |____tet_tl
| | |____LC_MESSAGES
| | | |____django.mo
| | | |____django.po
Karik ita hatama hotu ona kódigu sira hanesan instrusaun iha leten, ita bele halo teste, primeiru ita presiza ezekuta ita-nia server
(env) ➜ projetuteste python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
March 23, 2023 - 12:50:40
Django version 3.2.17, using settings 'projetuteste.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
projetuteste/settings.py
Karik ita ezekuta ita-nia server la iha erru ruma signifika ita-nia konfigurasaun susesu ona, favor loke ita-nia browser no vizita http://127.0.0.1:8000/rosetta/files/project/ ita sei haree pájina ida hanesan ezemplu hatudu iha okos:
Atu kontinua aprende barak liu tan kona-bá Django-Rosetta favor vizita dokumentasaun ofisial iha https://django-rosetta.readthedocs.io/installation.html