உள்ளமைவு வழிமுறைகள்

வலைபெயர்ப்பு நிறுவுகிறது

உங்கள் அமைப்பு மற்றும் அனுபவத்தைப் பொறுத்து, உங்களுக்கான பொருத்தமான நிறுவல் முறையைத் தேர்வுசெய்க:

கட்டிடக்கலை கண்ணோட்டம்

digraph architecture { graph [fontname="sans-serif", fontsize=10, newrank=true, rankdir=LR, splines=ortho ]; node [fontname="sans-serif", fontsize=10, height=0, margin=.15, shape=box ]; edge [fontname="sans-serif", fontsize=10 ]; subgraph cluster_thirdparty { graph [color=lightgrey, label="Third-party services", style=filled ]; mt [label="Machine translation", style=dotted]; sentry [label="Sentry\nError collection", style=dotted]; graylog [label="Graylog\nLog collection", style=dotted]; mail [label="E-mail server"]; auth [label="SSO\nAuthentication provider", style=dotted]; } subgraph cluster_ingress { graph [color=lightgrey, label=Ingress, style=filled ]; web [label="Web server", shape=hexagon]; } subgraph cluster_weblate { graph [color=lightgrey, label="Weblate code-base", style=filled ]; celery [fillcolor="#144d3f", fontcolor=white, label="Celery workers", style=filled]; wsgi [fillcolor="#144d3f", fontcolor=white, label="WSGI server", style=filled]; } subgraph cluster_services { graph [color=lightgrey, label=Services, style=filled ]; redis [label="Datastore\nTask queue\nCache", shape=cylinder]; db [label="PostgreSQL\nDatabase", shape=cylinder]; fs [label=Filesystem, shape=cylinder]; } web -> wsgi; web -> fs; celery -> mt [style=dotted]; celery -> sentry [style=dotted]; celery -> graylog [style=dotted]; celery -> mail; celery -> redis; celery -> db; celery -> fs; wsgi -> mt [style=dotted]; wsgi -> sentry [style=dotted]; wsgi -> graylog [style=dotted]; wsgi -> auth [style=dotted]; wsgi -> redis; wsgi -> db; wsgi -> fs; }

வலை சேவையகம்

உள்வரும் HTTP கோரிக்கைகளைக் கையாளுதல், நிலையான கோப்புகளை வழங்குதல்.

செலரி தொழிலாளர்கள்

செலரியைப் பயன்படுத்தி பின்னணி பணிகள் இங்கே செயல்படுத்தப்படுகிறது.

உங்கள் பணிச்சுமையைப் பொறுத்து, நீங்கள் தொழிலாளர்களின் எண்ணிக்கையைத் தனிப்பயனாக்க விரும்பலாம்.

வெப்ளேட்டை கிடைமட்டமாக அளவிடும்போது அர்ப்பணிப்பு முனையைப் பயன்படுத்தவும்.

WSGI சேவையகம்

பயனர்களுக்கு வலைப்பக்கங்களை வழங்கும் WSGI சேவையகம்.

வெப்ளேட்டை கிடைமட்டமாக அளவிடும்போது அர்ப்பணிப்பு முனையைப் பயன்படுத்தவும்.

தரவுத்தளம்

அனைத்து உள்ளடக்கத்தையும் சேமிக்க PostgreSQL தரவுத்தள சேவையகம், பார்க்கவும் வலைபெயர்ப்புடுக்கான தரவுத்தள அமைப்பு.

நூற்றுக்கணக்கான மில்லியன் புரவலன் செய்யப்பட்ட சொற்களைக் கொண்ட தளங்களுக்கு அர்ப்பணிக்கப்பட்ட தரவுத்தள முனையைப் பயன்படுத்தவும்.

டேட்டாச்டோர்

கேச் மற்றும் பணிகளுக்கான வரிசைக்கான வால்கி அல்லது ரெடிச் சர்வர் போன்ற விசை/மதிப்பு டேட்டாச்டோர், பார்க்க செலரியைப் பயன்படுத்தி பின்னணி பணிகள்.

வெப்ளேட்டை கிடைமட்டமாக அளவிடும்போது அர்ப்பணிப்பு முனையைப் பயன்படுத்தவும்.

கோப்பு முறைமை

பகஅ களஞ்சியங்களை சேமிப்பதற்கான கோப்பு முறைமை சேமிப்பு மற்றும் பதிவேற்றிய பயனர் தரவை. இது அனைத்து செயல்முறைகளாலும் பகிரப்படுகிறது.

வெப்ளேட்டை கிடைமட்டமாக அளவிடும்போது பிணைய சேமிப்பகத்தைப் பயன்படுத்தவும்.

மின்னஞ்சல் சேவையகம்

வெளிச்செல்லும் மின்னஞ்சலுக்கான SMTP சேவையகம், பார்க்கவும் வெளிச்செல்லும் மின்னஞ்சலை உள்ளமைத்தல். இது வெளிப்புறமாக வழங்கப்படலாம்.

Hint

டோக்கரைப் பயன்படுத்தி நிறுவுதல் என்பதில் PostgreSQL மற்றும் Valkey ஆகியவை அடங்கும், இது நிறுவலை எளிதாக்குகிறது.

மென்பொருள் தேவைகள்

இயக்க முறைமை

வலைபெயர்ப்பு லினக்ச், ஃப்ரீ.பி.எச்.டி மற்றும் மேகோச் ஆகியவற்றில் வேலை செய்வதாக அறியப்படுகிறது. அமைப்புகள் போன்ற பிற யூனிக்ச் பெரும்பாலும் வேலை செய்யும்.

வலைபெயர்ப்பு சாளரங்களில் ஆதரிக்கப்படவில்லை. ஆனால் அது இன்னும் வேலை செய்யலாம் மற்றும் திட்டுகள் மகிழ்ச்சியுடன் ஏற்றுக்கொள்ளப்படுகின்றன.

See also

கட்டிடக்கலை கண்ணோட்டம் ஒட்டுமொத்த வலைபெயர்ப்பு கட்டமைப்பு மற்றும் தேவையான சேவைகளை விவரிக்கிறது.

பைதான் சார்புநிலைகள்

வலைபெயர்ப்பு Python இல் எழுதப்பட்டுள்ளது மற்றும் பைதான் 3.12 அல்லது அதற்குப் புதியதை ஆதரிக்கிறது. நீங்கள் பிப்பைப் பயன்படுத்தி அல்லது உங்கள் விநியோக தொகுப்புகளிலிருந்து சார்புகளை நிறுவலாம், முழுப் பட்டியல் requirements.txt இல் கிடைக்கும்.

மிகவும் குறிப்பிடத்தக்க சார்புகள்:

Django

https://www.djangoproject.com/

செலரி

https://docs.celeryq.dev/

Translate Toolkit

https://toolkit.translatehouse.org/

மொழிபெயர்ப்பு-கண்டுபிடிப்பாளர்

https://github.com/weblateorg/translation-finder

பைதான் சமூக ஏற்பு

https://python-social-auth.readthedocs.io/

சாங்கோ ஓய்வு கட்டமைப்பு

https://www.django-rest-framework.org/

விருப்ப சார்புநிலைகள்

விருப்ப சார்பு விவரக்குறிப்பு

பைதான் தொகுப்புகள்

வலைபெயர்ப்பு நற்பொருத்தம்

amazon

அமேசான் மொழிபெயர்

gelf

கிரேலாக் பதிவு மேலாண்மை

gerrit

Gerrit review requests

google

கூகிள் முகில் மொழிபெயர்ப்பு மேம்பட்டது with சொற்களஞ்சியம் support

ldap

ldap ஏற்பு

mercurial

மெர்குரியல்

postgres

PostgreSQL, பார்க்க வலைபெயர்ப்புடுக்கான தரவுத்தள அமைப்பு

rollbar

பிழை அறிக்கைகளை சேகரித்தல் மற்றும் செயல்திறனைக் கண்காணித்தல்

saml

saml ஏற்பு

saml2idp

SAML 2 ஐடிபியை வெப்லேட்டில் ஒருங்கிணைத்தல்

sphinx

தேவை POT கோப்பைப் புதுப்பிக்கவும் (Sphinx)

wllegal

வலைபெயர்ப்பு ஒருங்கிணைப்பு புரவலன் செய்யப்பட்டது

wsgi

வலைபெயர்ப்புக்கான wsgi சேவையகம்

zxcvbn

கடவுச்சொல் ஏற்பு

pip ஐப் பயன்படுத்தி நிறுவும் போது, நிறுவும் போது விரும்பிய அம்சங்களை நேரடியாகக் குறிப்பிடலாம்:

uv pip install "weblate[Postgres,Amazon,SAML]"

அல்லது அனைத்து விருப்ப அம்சங்களுடனும் நீங்கள் வலைபெயர்ப்பு நிறுவலாம்:

uv pip install "weblate[all]"

அல்லது எந்த விருப்ப அம்சங்களும் இல்லாமல் நீங்கள் வலைபெயர்ப்பை நிறுவலாம்:

uv pip install weblate

சரிசெய்தல் குழாய் நிறுவுதல்

ERROR: Dependency 'gobject-introspection-2.0' is required but not found.

நிறுவப்பட்ட PyGobject தொகுப்பால் பொருந்தக்கூடிய GObject உள்நோக்க நூலகத்தைக் கண்டறிய முடியவில்லை - gobject-introspection-2.0.

பழைய பதிப்புகள் இனி வலைபெயர்ப்பு ஆல் ஆதரிக்கப்படாது.

ffi_prep_closure(): bad user_data (it seems that the version of the libffi library seen at runtime is different from the 'ffi.h' file seen at compile-time)

விநியோகத்துடன் pypi வழியாக விநியோகிக்கப்படும் பைனரி தொகுப்புகளின் பொருந்தாத தன்மையால் இது ஏற்படுகிறது. இதை நிவர்த்தி செய்ய, உங்கள் கணினியில் தொகுப்பை மீண்டும் உருவாக்க வேண்டும்:

uv pip install --force-reinstall --no-binary :all: cffi
error: ‘xmlSecKeyDataFormatEngine’ undeclared (first use in this function); did you mean ‘xmlSecKeyDataFormat’?

இது எக்ச்எம்எல்எச்இசி தொகுப்பின் அறியப்பட்ட சிக்கல், தயவுசெய்து https://github.com/xmlsec/python-xmlsec/issues/314 ஐப் பார்க்கவும்.

lxml & xmlsec libxml2 library version mismatch

lxml மற்றும் xmlsec தொகுப்புகள் ஒரு libxml2 க்கு எதிராக உருவாக்கப்பட வேண்டும். இந்தச் சிக்கலைத் தவிர்க்க நீங்கள் அவற்றை உள்நாட்டில் உருவாக்க வேண்டும்:

uv pip install --force-reinstall --no-binary xmlsec --no-binary lxml lxml xmlsec

பிற கணினி தேவைகள்

கணினியில் பின்வரும் சார்புகள் நிறுவப்பட வேண்டும்:

Git

https://git-scm.com/

பாங்கோ, கெய்ரோ மற்றும் தொடர்புடைய தலைப்பு கோப்புகள் மற்றும் கோப்செக்ட் உள்நோக்கி தரவு

https://cairographics.org/, https://www.gtk.org/docs/architecture/pango, பார் பாங்கோ மற்றும் கெய்ரோ

git-review (Gerrit ஆதரவுக்கு விருப்பமானது)

https://pypi.org/project/git-review/

git-svn (சப்வர்சன் ஆதரவுக்கு விருப்பமானது)

https://git-scm.com/docs/git-svn

tesseract (உங்கள் கணினியில் tesserocr பைனரி சக்கரங்கள் இல்லை என்றால் மட்டுமே தேவை)

https://github.com/tesseract-ocr/tesseract

உருவாக்க நேர சார்புகள்

சில பைதான் சார்புநிலைகள் ஐ உருவாக்க, நீங்கள் அவற்றின் சார்புகளை நிறுவ வேண்டும். இது நீங்கள் அவற்றை எவ்வாறு நிறுவுகிறீர்கள் என்பதைப் பொறுத்தது, எனவே ஆவணப்படுத்தலுக்கான தனிப்பட்ட தொகுப்புகளைப் பார்க்கவும். pip ஐப் பயன்படுத்தி நிறுவும் போது அல்லது விநியோகத் தொகுப்புகளைப் பயன்படுத்தும் போது, முன்பே கட்டமைக்கப்பட்ட வீல்ச் பயன்படுத்தினால் உங்களுக்கு அவை தேவைப்படாது.

பாங்கோ மற்றும் கெய்ரோ

பிட்மேப் விட்செட்களை வழங்குதல் செய்வதற்கும் (பார்க்க மொழிபெயர்ப்பு சமூகத்தை உருவாக்குதல்) மற்றும் வழங்குதல் காசோலைகளுக்கும் வலைபெயர்ப்பு Pango மற்றும் Cairo ஐப் பயன்படுத்துகிறது (பார்க்க எழுத்துருக்களை நிர்வகித்தல்). பைதான் பைண்டிங்குகளை சரியாக நிறுவ, முதலில் கணினி நூலகங்களை நிறுவ வேண்டும் - உங்களுக்கு கெய்ரோ மற்றும் பாங்கோ இரண்டும் தேவை, அதற்கு GLib தேவைப்படுகிறது. அவை அனைத்தும் டெவலப்மெண்ட் கோப்புகள் மற்றும் GObject உள்நோக்கத் தரவுகளுடன் நிறுவப்பட்டிருக்க வேண்டும்.

வன்பொருள் தேவைகள்

வலைபெயர்ப்பு எந்த சமகால வன்பொருளிலும் சிக்கல்கள் இல்லாமல் இயங்க வேண்டும், பின்வருபவை ஒரு ஓச்டில் வெப்லேட்டை இயக்க தேவையான குறைந்தபட்ச உள்ளமைவு (வெப்ளேட், தரவுத்தளம் மற்றும் வலை சேவையகம்):

  • 3 சிபி ரேம்

  • 2 சிபியு கோர்கள்

  • 1 சிபி சேமிப்பு இடம்

Note

வலைபெயர்ப்பு நிறுவுவதற்கான உண்மையான தேவைகள் அதில் நிர்வகிக்கப்படும் மொழிபெயர்ப்புகளின் அளவின் அடிப்படையில் பெரிதும் வேறுபடுகின்றன.

நினைவக பயன்பாடு

அதிக நினைவகம் சிறந்தது - இது அனைத்து நிலைகளிலும் (கோப்பு முறைமை, தரவுத்தளம் மற்றும் வெப்லேட்) தேக்குவதற்கு பயன்படுத்தப்படுகிறது. நூற்றுக்கணக்கான மொழிபெயர்ப்பு கூறுகளுக்கு, குறைந்தது 4 சிபி ரேம் பரிந்துரைக்கப்படுகிறது.

Hint

பரிந்துரைக்கப்பட்டதை விட குறைவான நினைவகம் உள்ள கணினிகளுக்கு, ஒற்றை-செயல்முறை செலரி அமைப்பு பரிந்துரைக்கப்படுகிறது.

சிபியு பயன்பாடு

பல ஒரே நேரத்தில் பயனர்கள் தேவையான சிபியு கோர்களின் அளவை அதிகரிக்கின்றனர்.

சேமிப்பக பயன்பாடு

வழக்கமான தரவுத்தள சேமிப்பக பயன்பாடு 1 மில்லியன் புரவலன் செய்யப்பட்ட சொற்களுக்கு 300 எம்பி ஆகும்.

நகலி செய்யப்பட்ட களஞ்சியங்களுக்குத் தேவையான சேமிப்பக இடம் மாறுபடும், ஆனால் வலைபெயர்ப்பு ஆழமற்ற குளோன்களைச் செய்வதன் மூலம் அவற்றின் அளவை குறைவாக வைத்திருக்க முயற்சிக்கிறது.

முனைகள்

சிறிய மற்றும் நடுத்தர அளவிலான தளங்களுக்கு (மில்லியன் கணக்கான புரவலன் செய்யப்பட்ட சொற்கள்), அனைத்து வலைபெயர்ப்பு கூறுகளையும் (பார்க்க கட்டிடக்கலை கண்ணோட்டம்) ஒரே முனையில் இயக்க முடியும்.

நூற்றுக்கணக்கான மில்லியன் புரவலன் செய்யப்பட்ட சொற்களுக்கு நீங்கள் வளரும்போது, தரவுத்தளத்திற்கு ஒரு பிரத்யேக முனையை வைத்திருக்க பரிந்துரைக்கப்படுகிறது (பார்க்க வலைபெயர்ப்புடுக்கான தரவுத்தள அமைப்பு).

வெளியீட்டு கையொப்பங்களை சரிபார்க்கிறது

வலைபெயர்ப்பு வெளியீடு கையெழுத்துக்கடை கையொப்பங்கள் ஐப் பயன்படுத்தி கிரிப்டோகிராஃபிக் முறையில் கையொப்பமிடப்பட்டது. கையொப்பங்கள் அறிவிலிமைய வெளியீட்டில் இணைக்கப்பட்டுள்ளன.

கைகடை தொகுப்பு ஐப் பயன்படுத்தி சரிபார்ப்பைச் செய்யலாம். பின்வரும் எடுத்துக்காட்டு 5.4 வெளியீட்டின் கையொப்பத்தை சரிபார்க்கிறது:

sigstore verify github \
   --cert-identity https://github.com/WeblateOrg/weblate/.github/workflows/setup.yml@refs/tags/weblate-5.4 \
   --bundle Weblate-5.4-py3-none-any.whl.sigstore \
   Weblate-5.4-py3-none-any.whl

கோப்பு முறைமை அனுமதிகள்

வலைபெயர்ப்பு செயல்முறையானது தரவை வைத்திருக்கும் கோப்பகத்தைப் படிக்கவும் எழுதவும் முடியும் - DATA_DIR. இந்த கோப்பகத்தில் உள்ள அனைத்து கோப்புகளும் அனைத்து வலைபெயர்ப்பு செயல்முறைகளையும் இயக்கும் பயனரால் சொந்தமாக இருக்க வேண்டும் மற்றும் எழுதக்கூடியதாக இருக்க வேண்டும் (பொதுவாக WSGI மற்றும் Celery, பார்க்க சேவையகம் இயங்கும் மற்றும் செலரியைப் பயன்படுத்தி பின்னணி பணிகள்).

இயல்புநிலை உள்ளமைவு, வலைபெயர்ப்பு ஆதாரங்களின் அதே மரத்தில் அவற்றை வைக்கிறது, இருப்பினும் நீங்கள் இவற்றை ஒரு சிறந்த இடத்திற்கு நகர்த்த விரும்பலாம்: /var/lib/weblate.

வலைபெயர்ப்பு இந்த கோப்பகங்களை தானாக உருவாக்க முயற்சிக்கிறது, ஆனால் அவ்வாறு செய்ய அனுமதிகள் இல்லாதபோது அது தோல்வியடையும்.

The configured CACHE_DIR also has to be writable by the Weblate process and has to allow executing generated helper files. Do not mount CACHE_DIR with the noexec option.

மேலாண்மை கட்டளைகள் இயங்கும் போது நீங்கள் கவனமாக இருக்க வேண்டும், ஏனெனில் அவை வலைபெயர்ப்பு இயங்கும் அதே பயனரின் கீழ் இயங்க வேண்டும், இல்லையெனில் சில கோப்புகளின் அனுமதிகள் தவறாக இருக்கலாம்.

கப்பல்துறை கண்டெய்னரில், /app/data தொகுதியில் உள்ள அனைத்து கோப்புகளும் கொள்கலனில் உள்ள weblate பயனருக்குச் சொந்தமானதாக இருக்க வேண்டும் (UID 1000).

வலைபெயர்ப்புடுக்கான தரவுத்தள அமைப்பு

போச்ட்கிரெச்.கியூ.எல் தரவுத்தள சேவையகத்துடன் வலைபெயர்ப்பை இயக்க பரிந்துரைக்கப்படுகிறது.

Postgresql 13 மற்றும் அதற்கு மேற்பட்டவை ஆதரிக்கப்படுகின்றன. Postgresql 15 அல்லது புதியது பரிந்துரைக்கப்படுகிறது.

தரவுத்தள இணைப்புகள்

இயல்புநிலை கட்டமைப்பில், ஒவ்வொரு வலைபெயர்ப்பு செயல்முறையும் தரவுத்தளத்துடன் ஒரு தொடர் இணைப்பை வைத்திருக்கிறது. தொடர்ச்சியான இணைப்புகள் வலைபெயர்ப்பு வினைத்திறனை மேம்படுத்துகின்றன, ஆனால் தரவுத்தள சேவையகத்திற்கு அதிக ஆதாரங்கள் தேவைப்படலாம். மேலும் தகவலுக்கு CONN_MAX_AGE மற்றும் Persistent connections ஐப் பார்க்கவும்.

வலைபெயர்ப்புடுக்கு குறைந்தபட்சம் பின்வரும் இணைப்புகள் தேவை:

  • \((4 \times \mathit{nCPUs}) + 2\) க்கு சிவரிக்கீரை processes

  • \(\mathit{nCPUs} + 1\) WSGI தொழிலாளர்களுக்கு

இந்த ஆவணத்தில் வழங்கப்பட்ட கப்பல்துறை கொள்கலன் இயல்புநிலை மற்றும் எடுத்துக்காட்டு உள்ளமைவுகளுக்கு இது பொருந்தும், ஆனால் நீங்கள் wsgi தொழிலாளர்களின் அளவைத் தனிப்பயனாக்கியவுடன் அல்லது செலரியின் இணையான தன்மையை சரிசெய்யும்போது எண்கள் மாறும்.

தரவுத்தள இணைப்புகளின் எண்ணிக்கையின் உண்மையான வரம்பு பின்வரும் சூழ்நிலைகளுக்கு கணக்கில் அதிகமாக இருக்க வேண்டும்:

  • மேலாண்மை கட்டளைகள் க்கு அவற்றின் இணைப்பும் தேவை.

  • வழக்கு செயல்முறை கொல்லப்பட்டால் (எடுத்துக்காட்டாக oom கில்லரால்), இது நேரம் முடிவடையும் வரை இருக்கும் இணைப்பைத் தடுக்கலாம்.

postgresql

போச்ட்கிரெச்யூல் பொதுவாக சாங்கோ அடிப்படையிலான தளங்களுக்கு சிறந்த தேர்வாகும். இது சாங்கோ தரவுத்தள அடுக்கை செயல்படுத்த பயன்படுத்தப்படும் குறிப்பு தரவுத்தளம்.

Note

வலைபெயர்ப்பு டிரிகிராம் நீட்டிப்பைப் பயன்படுத்துகிறது, இது சில சந்தர்ப்பங்களில் தனித்தனியாக நிறுவப்பட வேண்டும். postgresql-contrib அல்லது அதே பெயரிடப்பட்ட தொகுப்பைத் தேடவும்.

See also

PostgreSQL notes

postgresql இல் ஒரு தரவுத்தளத்தை உருவாக்குதல்

ஒரு தனி தரவுத்தளத்தில் வலைபெயர்ப்பு இயக்குவது பொதுவாக ஒரு நல்ல யோசனையாகும், மேலும் பயனர் கணக்கைப் பிரிக்கவும்:

# If PostgreSQL was not installed before, set the main password
sudo -u postgres psql postgres -c "\password postgres"

# Create a database user called "weblate"
sudo -u postgres createuser --superuser --pwprompt weblate

# Create the database "weblate" owned by "weblate"
sudo -u postgres createdb -E UTF8 -O weblate weblate

Hint

போச்ட்கிரெச்க்யூலில் வலைபெயர்ப்பு பயனரை ஒரு சூப்பர் யூசராக மாற்ற நீங்கள் விரும்பவில்லை என்றால், நீங்கள் அதை தவிர்க்கலாம். அவ்வாறான நிலையில், ச்கீமா வலைபெயர்ப்பில் ஒரு போச்ட்கிரெச்க்யூல் சூப்பர் யூசராக சில இடம்பெயர்வு படிகளை கைமுறையாக செய்ய வேண்டும்:

CREATE EXTENSION IF NOT EXISTS pg_trgm;
CREATE EXTENSION IF NOT EXISTS btree_gin;

போச்ட்கிரெச்க்யூல் பயன்படுத்த வலைபெயர்ப்பு கட்டமைத்தல்

PostgreSQL க்கான settings.py துணுக்கு:

DATABASES = {
    "default": {
        # Database engine
        "ENGINE": "django.db.backends.postgresql",
        # Database name
        "NAME": "weblate",
        # Database user
        "USER": "weblate",
        # Configures name of the PostgreSQL role to alter during the database migration
        # "ALTER_ROLE": "weblate",
        # Database password
        "PASSWORD": "password",
        # Set to empty string for localhost
        "HOST": "database.example.com",
        # Set to empty string for default
        "PORT": "",
        # Persistent connections
        "CONN_MAX_AGE": None,
        "CONN_HEALTH_CHECKS": True,
    }
}

தரவுத்தள இடம்பெயர்வு, வலைபெயர்ப்பு பயன்படுத்தும் தரவுத்தளப் பாத்திரத்தில் ALTER ROLE செய்கிறது. பெரும்பாலான சந்தர்ப்பங்களில், பாத்திரத்தின் பெயர் பயனர்பெயருடன் பொருந்துகிறது. மிகவும் சிக்கலான அமைப்புகளில், பாத்திரப் பெயர் பயனர்பெயரில் இருந்து வேறுபட்டது, மேலும் தரவுத்தள இடம்பெயர்வின் போது இல்லாத பங்கு பற்றிய பிழையைப் பெறுவீர்கள் (psycopg2.errors.UndefinedObject: பாத்திரம் "weblate@hostname" இல்லை). PostgreSQL க்கான அசூர் தரவுத்தளத்தில் இது நடப்பதாக அறியப்படுகிறது, ஆனால் இது இந்த சூழலில் மட்டும் அல்ல. தரவுத்தள நகர்வின் போது வலைபெயர்ப்பு மாற்ற வேண்டிய பாத்திரத்தின் பெயரை மாற்ற, ALTER_ROLE ஐ அமைக்கவும்.

பிற உள்ளமைவுகள்

வெளிச்செல்லும் மின்னஞ்சலை உள்ளமைத்தல்

வலைபெயர்ப்பு பல்வேறு சந்தர்ப்பங்களில் மின்னஞ்சல்களை அனுப்புகிறது - கணக்கு செயல்படுத்தலுக்காகவும், பயனர்களால் கட்டமைக்கப்பட்ட பல்வேறு அறிவிப்புகளுக்காகவும். இதற்காக இதற்கு ஒரு smtp சேவையகத்திற்கான அணுகல் தேவை.

அஞ்சல் சேவையக அமைவு இந்த அமைப்புகளைப் பயன்படுத்தி கட்டமைக்கப்பட்டுள்ளது: EMAIL_HOST, EMAIL_HOST_PASSWORD, EMAIL_USE_TLS, EMAIL_USE_SSL, EMAIL_HOST_USER மற்றும் EMAIL_PORT. அவைகளின் பெயர்கள் மிகவும் தன்வய விளக்கமளிக்கும், ஆனால் நீங்கள் சாங்கோ ஆவணத்தில் கூடுதல் தகவலைக் காணலாம்.

Hint

ஆதரிக்கப்படாத அங்கீகாரத்தைப் பற்றிய பிழை ஏற்பட்டால் (உதாரணமாக SMTP AUTH நீட்டிப்பு சேவையகத்தால் ஆதரிக்கப்படவில்லை), இது பாதுகாப்பற்ற இணைப்பைப் பயன்படுத்துவதால் ஏற்படக்கூடும் மற்றும் சர்வர் இந்த வழியில் அங்கீகரிக்க மறுக்கிறது. அப்படியானால் EMAIL_USE_TLS ஐ இயக்க முயற்சிக்கவும்.

தலைகீழ் ப்ராக்சிக்கு பின்னால் இயங்குகிறது

வெப்லேட்டில் உள்ள பல நற்பொருத்தங்கள் சரியான HTTP தலைப்புகள் வெப்லேட்டுக்கு அனுப்பப்படுவதை நம்பியுள்ளன. தலைகீழ் ப்ராக்சியைப் பயன்படுத்தும் போது, தேவையான தகவல்கள் சரியாக நிறைவேற்றப்பட்டுள்ளதா என்பதை உறுதிப்படுத்தவும்.

இந்த உள்ளமைவை பிழைத்திருத்த, செயல்திறன் அறிக்கை இல் HTTP சூழல் ஐப் பார்க்கலாம்.

வாங்கி ஐபி முகவரி

வீதத்தைக் கட்டுப்படுத்துதல் அல்லது தணிக்கை பதிவு க்கு இது தேவை.

WSGI ஏண்ட்லரால் அமைக்கப்பட்ட REMOTE_ADDR இலிருந்து IP முகவரியை வலைபெயர்ப்பு அலசுகிறது. இது காலியாக இருக்கலாம் (WSGIக்கான சாக்கெட்டைப் பயன்படுத்தும் போது) அல்லது தலைகீழ் பதிலாள் முகவரியைக் கொண்டிருக்கலாம், எனவே வலைபெயர்ப்பு க்கு கிளையன்ட் IP முகவரியுடன் கூடிய கூடுதல் HTTP தலைப்பு தேவை.

IP_BEHIND_REVERSE_PROXY ஐ இயக்குவது மிகவும் வழக்கமான அமைப்புகளுக்குப் போதுமானதாக இருக்க வேண்டும், ஆனால் நீங்கள் IP_PROXY_HEADER மற்றும் IP_PROXY_OFFSET ஆகியவற்றைச் சரிசெய்ய வேண்டியிருக்கலாம் (பயன்படுத்தவும் WEBLATE_IP_PROXY_HEADER மற்றும் WEBLATE_IP_PROXY_OFFSET கப்பல்துறை கொள்கலனில்).

Hint

இந்த உள்ளமைவை முன்னிருப்பாக இயக்க முடியாது, ஏனென்றால் சரியாக உள்ளமைக்கப்பட்ட தலைகீழ் பதிலாள் இல்லாத நிறுவல்களில் ஐபி முகவரி ச்பூஃபிங்கை இது அனுமதிக்கும்.

சேவையக புரவலன் பெயர்

Host தலைப்பு SITE_DOMAIN என உள்ளமைக்கப்பட்டுள்ளவற்றுடன் பொருந்த வேண்டும். உங்கள் தலைகீழ் ப்ராக்சியில் கூடுதல் உள்ளமைவு தேவைப்படலாம் (எடுத்துக்காட்டாக, அப்பாச்சிக்கு ProxyPreserveHost On அல்லது nginx உடன் proxy_set_header விருந்தோம்பி $host; ஐப் பயன்படுத்தவும்).

Hint

CSRF சரிபார்ப்பில் தோல்வியடைந்த பிழைகள் பெரும்பாலும் Host தலைப்புக்கும் உள்ளமைக்கப்பட்ட SITE_DOMAIN க்கும் இடையே உள்ள பொருத்தமின்மையால் ஏற்படுகிறது.

வாங்கி நெறிமுறை

சரியான நெறிமுறையை அனுப்பாதது, கிளையண்டை HTTPS க்கு மேம்படுத்த முயற்சிக்கும் திசைதிருப்பல் சுழற்சியில் வலைபெயர்ப்பு முடிவடையும். X-Forwarded-Proto என ரிவர்ச் பதிலாள் மூலம் அது சரியாக வெளிப்படுவதை உறுதிசெய்யவும்.

இந்த தலைப்பு பின்னர் SECURE_PROXY_SSL_HEADER (settings.py) அல்லது WEBLATE_SECURE_PROXY_SSL_HEADER (டாக்கர் சூழல்) இல் கட்டமைக்கப்பட வேண்டும்.

Important

உள்ளமைவில் தலைப்பு மதிப்பு வழக்கு-உணர் ஆகும், எனவே WEBLATE_SECURE_PROXY_SSL_HEADER=HTTP_X_FORWARDED_PROTO,https மற்றும் WEBLATE_SECURE_PROXY_SSL_HEADER=HTTP_X_FORWARDED_PROTO,HTTPS மாற்ற முடியாதது.

Hint

நீங்கள் உலாவியில் இருந்து "அதிகமான வழிமாற்றுகள்" பிழையைப் பெறுகிறீர்கள் என்றால், இது பெரும்பாலும் உண்மையான நெறிமுறை (HTTPS) மற்றும் வலைபெயர்ப்பு ஆல் கவனிக்கப்படுவதற்கு இடையே உள்ள பொருத்தமின்மை காரணமாக இருக்கலாம்.

Changed in version 5.13: நெறிமுறை பதிலாள் தலைப்புகள் இயல்புநிலை உள்ளமைவில் தானாக gunicorn மூலம் கையாளப்படும், ஆனால் மற்ற WSGI சேவையகங்கள் மிகவும் பாதுகாப்பான உள்ளமைவைக் கொண்டுள்ளன, மேலும் இதை வெளிப்படையாக அமைக்க வேண்டும்.

வலைபெயர்ப்பு 5.13 என்பதால், Docker கொள்கலன் granian ஐப் பயன்படுத்துகிறது, மேலும் அதற்கு இப்போது WEBLATE_SECURE_PROXY_SSL_HEADER இன் வெளிப்படையான உள்ளமைவு தேவைப்படுகிறது.

http பதிலாள்

வலைபெயர்ப்பு பகஅ கட்டளைகளைச் செயல்படுத்துகிறது மற்றும் அவை சூழலிலிருந்து பதிலாள் உள்ளமைவை ஏற்கின்றன. பதிலாள் அமைப்புகளை settings.py இல் வரையறுப்பது பரிந்துரைக்கப்பட்ட அணுகுமுறையாகும்:

import os

os.environ["http_proxy"] = "http://proxy.example.com:8080"
os.environ["HTTPS_PROXY"] = "http://proxy.example.com:8080"

உள்ளமைவை சரிசெய்தல்

weblate/settings_example.pyweblate/settings.py க்கு நகலெடுத்து, உங்கள் அமைப்போடு பொருந்துமாறு அதைச் சரிசெய்யவும். பின்வரும் விருப்பங்களை நீங்கள் சரிசெய்ய விரும்பலாம்:

ADMINS

ஏதேனும் தவறு நடந்தால் அறிவிப்புகளைப் பெற தள நிர்வாகிகளின் பட்டியல், எடுத்துக்காட்டாக தோல்வியுற்ற இணைப்புகள் அல்லது சாங்கோ பிழைகள் குறித்த அறிவிப்புகள்.

ADMINS_CONTACT உள்ளமைக்கப்படாவிட்டால் தொடர்பு படிவம் இவற்றுக்கும் மின்னஞ்சலை அனுப்பும்.

ALLOWED_HOSTS

உங்கள் தளம் பணி செய்ய வேண்டிய ஓச்ட்களை பட்டியலிட இதை அமைக்க வேண்டும். உதாரணத்திற்கு:

ALLOWED_HOSTS = ["demo.weblate.org"]

மாற்றாக நீங்கள் வைல்டு கார்டைச் சேர்க்கலாம்:

ALLOWED_HOSTS = ["*"]

SESSION_ENGINE

உங்கள் அமர்வுகள் எவ்வாறு சேமிக்கப்படும் என்பதை உள்ளமைக்கவும். நீங்கள் இயல்புநிலை தரவுத்தள பின்தள எஞ்சினை வைத்திருந்தால், தரவுத்தளத்திலிருந்து பழைய அமர்வுத் தரவை அகற்ற, weblate clearsessions என்பதை நீங்கள் திட்டமிட வேண்டும்.

நீங்கள் Valkey அல்லது Redis ஐ தற்காலிக சேமிப்பாகப் பயன்படுத்துகிறீர்கள் என்றால் (பார்க்க தற்காலிக சேமிப்பை உள்ளமைக்கவும்) அதை அமர்வுகளுக்கும் பயன்படுத்த பரிந்துரைக்கப்படுகிறது:

SESSION_ENGINE = "django.contrib.sessions.backends.cache"

DATABASES

தரவுத்தள சேவையகத்துடன் இணைப்பு, மேலும் விவரங்களுக்கு சாங்கோவின் ஆவணங்களை சரிபார்க்கவும்.

DEBUG

எந்தவொரு தயாரிப்பு சேவையகத்திற்கும் இதை முடக்கவும். பிழைத்திருத்த பயன்முறை இயக்கப்பட்டால், பயனர்களுக்குப் பிழை ஏற்பட்டால், சாங்கோ பின்னொளியைக் காண்பிக்கும், நீங்கள் அதை முடக்கும்போது, ஒவ்வொரு மின்னஞ்சலுக்கும் பிழைகள் நிர்வாகிகள் க்கு அனுப்பப்படும் (மேலே பார்).

இந்த விசயத்தில் சாங்கோ உள்நாட்டில் அதிகமான தகவல்களை சேமித்து வைப்பதால், பிழைத்திருத்த பயன்முறையும் வலைபெயர்ப்பைக் குறைக்கிறது.

DEFAULT_FROM_EMAIL

வெளிச்செல்லும் மின்னஞ்சலுக்கான மின்னஞ்சல் அனுப்புநர் முகவரி, எடுத்துக்காட்டாக பதிவு மின்னஞ்சல்.

SECRET_KEY

குக்கீகளில் சில தகவல்களை கையொப்பமிட சாங்கோ பயன்படுத்திய விசை, மேலும் தகவலுக்கு சாங்கோ ரகசிய விசை ஐப் பார்க்கவும்.

See also

SECRET_KEY

SERVER_EMAIL

நிர்வாகிக்கு மின்னஞ்சல்களை அனுப்புவதற்கு அனுப்புநர் முகவரியாக பயன்படுத்தப்படும் மின்னஞ்சல், எடுத்துக்காட்டாக தோல்வியுற்ற இணைப்புகள் குறித்த அறிவிப்புகள்.

See also

SERVER_EMAIL

தரவுத்தளத்தை நிரப்புதல்

உங்கள் உள்ளமைவு தயாரான பிறகு, தரவுத்தள அமைப்பை உருவாக்க நீங்கள் migrate ஐ இயக்கலாம். இப்போது நீங்கள் நிர்வாக இடைமுகத்தைப் பயன்படுத்தி மொழிபெயர்ப்பு திட்டங்களை உருவாக்க முடியும்.

நீங்கள் முடித்ததும், நிர்வாக இடைமுகத்தில் உள்ள செயல்திறன் அறிக்கை என்பதைச் சரிபார்க்கவும், இது உங்கள் தளத்தில் சாத்தியமான உகந்த அல்லாத உள்ளமைவுகளின் குறிப்புகளை உங்களுக்கு வழங்கும்.

விளைவாக்கம் அமைப்பு

விளைவாக்கம் அமைப்பிற்கு நீங்கள் பின்வரும் பிரிவுகளில் விவரிக்கப்பட்டுள்ள மாற்றங்களைச் செய்ய வேண்டும். மிக முக்கியமான அமைப்புகள் ஒரு எச்சரிக்கையைத் தூண்டும், இது ஒரு சூப்பர் யூசராக கையொப்பமிடப்பட்டால் மேல் பட்டியில் ஒரு ஆச்சரியக் குறியால் குறிக்கப்படுகிறது:

../_images/admin-wrench.webp

சாங்கோவால் தூண்டப்பட்ட சோதனைகளை ஆய்வு செய்யவும் பரிந்துரைக்கப்படுகிறது (அவை அனைத்தையும் நீங்கள் சரிசெய்ய தேவையில்லை என்றாலும்):

weblate check --deploy

அதே சரிபார்ப்பு பட்டியலை செயல்திறன் அறிக்கை இல் மேலாண்மை இடைமுகம் இல் மதிப்பாய்வு செய்யலாம்.

பிழைத்திருத்த பயன்முறையை முடக்கு

சாங்கோவின் பிழைத்திருத்த பயன்முறையை (DEBUG) முடக்கு:

DEBUG = False

பிழைத்திருத்த பயன்முறையில், சாங்கோ செயல்படுத்தப்பட்ட அனைத்து வினவல்களையும் சேமித்து வைத்து, பயனர்களின் பிழைகளின் பின்னடைவைக் காட்டுகிறது, இது விளைவாக்கம் அமைப்பில் விரும்பவில்லை.

நிர்வாகிகளை ஒழுங்காக உள்ளமைக்கவும்

சர்வரில் ஏதேனும் தவறு நடந்தால் யார் மின்னஞ்சல்களைப் பெறுவார்கள் என்பதை வரையறுக்கச் சரியான நிர்வாகி முகவரிகளை ADMINS அமைப்பிற்கு அமைக்கவும், எடுத்துக்காட்டாக:

ADMINS = ("Your Name <your_email@example.com>",)

சரியான தள களத்தை அமைக்கவும்

நிர்வாக இடைமுகத்தில் தளத்தின் பெயர் மற்றும் டொமைனைச் சரிசெய்யவும், இல்லையெனில் RSS இல் உள்ள இணைப்புகள் அல்லது பதிவு மின்னஞ்சல்கள் வேலை செய்யாது. இது SITE_DOMAIN ஐப் பயன்படுத்தி கட்டமைக்கப்பட்டுள்ளது, இதில் தள டொமைன் பெயர் இருக்க வேண்டும்.

Changed in version 4.2: 4.2 வெளியீட்டிற்கு முன் சாங்கோ தளங்கள் கட்டமைப்பு பயன்படுத்தப்பட்டது, தயவுசெய்து பார்க்கவும் The “sites” framework.

http களை சரியாக உள்ளமைக்கவும்

மறைகுறியாக்கப்பட்ட HTTPS நெறிமுறையைப் பயன்படுத்தி வலைபெயர்ப்பு ஐ இயக்க பரிந்துரைக்கப்படுகிறது. அதை இயக்கிய பிறகு, அமைப்புகளில் ENABLE_HTTPS அமைக்க வேண்டும்:

ENABLE_HTTPS = True

Hint

நீங்கள் HSTS ஐயும் அமைக்க விரும்பலாம், மேலும் விவரங்களுக்கு SSL/HTTPS ஐப் பார்க்கவும்.

ஒழுங்காக அமைக்கவும் secure_hsts_seconds

உங்கள் தளம் SSL மூலம் வழங்கப்பட்டால், HTTP கடுமையான போக்குவரத்து பாதுகாப்பை இயக்க settings.py இல் SECURE_HSTS_SECONDS க்கான மதிப்பை அமைப்பதை நீங்கள் பரிசீலிக்க வேண்டும். இயல்பாக, கீழே காட்டப்பட்டுள்ளபடி 0 ஆக அமைக்கப்பட்டுள்ளது.

SECURE_HSTS_SECONDS = 0

பூச்சியம் அல்லாத முழு எண் மதிப்பாக அமைக்கப்பட்டால், django.middleware.security.SecurityMiddleware ஆனது ஏற்கனவே இல்லாத அனைத்து பதில்களிலும் HTTP Strict Transport Security என்ற தலைப்பை அமைக்கும்.

Warning

இதைத் தவறாக அமைத்தால், மீளமுடியாமல் (சில நேரம்) உங்கள் தளம் உடைந்துவிடும். HTTP Strict Transport Security ஆவணத்தை முதலில் படிக்கவும்.

சக்திவாய்ந்த தரவுத்தள இயந்திரத்தைப் பயன்படுத்து

  • தயாரிப்பு சூழலுக்கு PostgreSQL ஐப் பயன்படுத்தவும், மேலும் தகவலுக்கு வலைபெயர்ப்புடுக்கான தரவுத்தள அமைப்பு ஐப் பார்க்கவும்.

  • தரவுத்தள சேவையகத்தை இயக்க அருகிலுள்ள இருப்பிடத்தைப் பயன்படுத்து, இல்லையெனில் பிணையம்கிங் செயல்திறன் அல்லது நம்பகத்தன்மை உங்கள் வலைபெயர்ப்பு அனுபவத்தை அழிக்கக்கூடும்.

  • தரவுத்தள சேவையக செயல்திறனைச் சரிபார்க்கவும் அல்லது அதன் உள்ளமைவை மாற்றவும், எடுத்துக்காட்டாக PGTune ஐப் பயன்படுத்தி.

தற்காலிக சேமிப்பை உள்ளமைக்கவும்

முடிந்தால், CACHES கட்டமைப்பு மாறியை சரிசெய்வதன் மூலம் சாங்கோவிலிருந்து Valkey அல்லது Redis ஐப் பயன்படுத்தவும், எடுத்துக்காட்டாக:

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/0",
        # If redis is running on same host as Weblate, you might
        # want to use unix sockets instead:
        # 'LOCATION': 'unix:///var/run/redis/redis.sock?db=0',
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
            "PARSER_CLASS": "redis.connection.HiredisParser",
        },
    }
}

Hint

நீங்கள் தற்காலிக சேமிப்பிற்கான அமைப்புகளை மாற்றினால், அவற்றை செலரிக்கும் சரிசெய்ய வேண்டியிருக்கும், பார்க்கவும் செலரியைப் பயன்படுத்தி பின்னணி பணிகள்.

அவதார் கேச்சிங்

சாங்கோவை கேச்சிங் செய்வதோடு கூடுதலாக, வலைபெயர்ப்பு அவதாரங்களின் தேக்ககத்தை செய்கிறது. இந்த நோக்கத்திற்காக தனி, கோப்பு உதவி தற்காலிக சேமிப்பைப் பயன்படுத்த பரிந்துரைக்கப்படுகிறது:

CACHES = {
    "default": {
        # Default caching backend setup, see above
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "unix:///var/run/redis/redis.sock?db=0",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
            "PARSER_CLASS": "redis.connection.HiredisParser",
        },
    },
    "avatar": {
        "BACKEND": "django.core.cache.backends.filebased.FileBasedCache",
        "LOCATION": os.path.join(DATA_DIR, "avatar-cache"),
        "TIMEOUT": 604800,
        "OPTIONS": {
            "MAX_ENTRIES": 1000,
        },
    },
}

மின்னஞ்சல் அனுப்புதல் உள்ளமைக்கவும்

வலைபெயர்ப்பு பல சந்தர்ப்பங்களில் மின்னஞ்சல்களை அனுப்ப வேண்டும், மேலும் இந்த மின்னஞ்சல்கள் சரியான அனுப்புநர் முகவரியைக் கொண்டிருக்க வேண்டும், உங்கள் சூழலுடன் பொருந்துமாறு SERVER_EMAIL மற்றும் DEFAULT_FROM_EMAIL ஐ உள்ளமைக்கவும், எடுத்துக்காட்டாக:

SERVER_EMAIL = "admin@example.org"
DEFAULT_FROM_EMAIL = "weblate@example.org"

Note

வலைபெயர்ப்பு மூலம் மின்னஞ்சல்களை அனுப்புவதை முடக்க EMAIL_BACKEND இவ்வாறு django.core.mail.backends.dummy.EmailBackend அமை.

இது பதிவு அல்லது கடவுச்சொல் மீட்டமைப்பு மின்னஞ்சல்கள் உட்பட அனைத்து மின்னஞ்சல் விநியோகத்தையும் முடக்கும்.

அனுமதிக்கப்பட்ட ஓச்ட்கள் அமைவு

உங்கள் தளம் பணி செய்ய அனுமதிக்கப்பட்டுள்ள டொமைன் பெயர்களின் பட்டியலை வைத்திருக்க சாங்கோவிற்கு ALLOWED_HOSTS தேவை, அதை காலியாக விட்டால் கோரிக்கைகள் எதுவும் தடுக்கப்படும்.

உங்கள் HTTP சேவையகத்துடன் பொருந்துமாறு இது கட்டமைக்கப்படவில்லை என்றால், நீங்கள் தவறான HTTP_HOST தலைப்பு: '1.1.1.1' போன்ற பிழைகளைப் பெறுவீர்கள். நீங்கள் ALLOWED_HOSTS. இல் '1.1.1.1' ஐச் சேர்க்க வேண்டியிருக்கலாம்

Hint

கப்பல்துறை கொள்கலனில், இது WEBLATE_ALLOWED_HOSTS என கிடைக்கும்.

சாங்கோ ரகசிய விசை

SECRET_KEY அமைப்பு சாங்கோவால் குக்கீகளை கையொப்பமிடப் பயன்படுத்துகிறது, மேலும் எடுத்துக்காட்டு அமைப்பிலிருந்து ஒன்றைப் பயன்படுத்துவதை விட உங்கள் சொந்த மதிப்பை நீங்கள் உருவாக்க வேண்டும்.

வலைபெயர்ப்பு உடன் அனுப்பப்படும் weblate-generate-secret-key ஐப் பயன்படுத்தி புதிய விசையை உருவாக்கலாம்.

See also

SECRET_KEY

பராமரிப்பு பணிகளை இயக்குகிறது

சிறந்த செயல்திறனுக்காக, பின்னணியில் சில பராமரிப்பு பணிகளை இயக்குவது நல்லது. இது தானாகவே செலரியைப் பயன்படுத்தி பின்னணி பணிகள் ஆல் செய்யப்படுகிறது மற்றும் பின்வரும் பணிகளை உள்ளடக்கியது:

  • உள்ளமைவு சுகாதார சோதனை (மணிநேரம்).

  • நிலுவையில் உள்ள மாற்றங்களைச் செய்கிறது (மணிநேரம்), பார்க்க சோம்பேறி கம்யூச் மற்றும் commit_pending.

  • கூறு விழிப்பூட்டல்களை புதுப்பித்தல் (தினசரி).

  • தொலைநிலைக் கிளைகளைப் புதுப்பிக்கவும் (இரவில்), பார்க்கவும் AUTO_UPDATE.

  • JSONக்கு (தினசரி) மொழிபெயர்ப்பு நினைவக காப்புப்பிரதி, பார்க்கவும் dump_memory.

  • முழு உரை மற்றும் தரவுத்தள பராமரிப்பு பணிகள் (தினசரி மற்றும் வாராந்திர பணிகள்), பார்க்கவும் cleanuptrans.

கணினி இடங்கள் மற்றும் குறியாக்கம்

கணினி இடங்கள் யுடிஎஃப் -8 திறமையானவர்களுடன் கட்டமைக்கப்பட வேண்டும். பெரும்பாலான லினக்ச் விநியோகங்களில் இது இயல்புநிலை அமைப்பாகும். உங்கள் கணினியில் இது இல்லை என்றால், தயவுசெய்து இடங்களை utf-8 மாறுபாட்டிற்கு மாற்றவும்.

எடுத்துக்காட்டாக /etc/default/locale ஐ திருத்து செய்து அங்கு LANG="C.UTF-8" அமைப்பதன் மூலம்.

சில சந்தர்ப்பங்களில் தனிப்பட்ட சேவைகள் இடங்களுக்கு தனித்தனி உள்ளமைவைக் கொண்டுள்ளன. இது வழங்கல் மற்றும் வலை சேவையகங்களுக்கு இடையில் மாறுபடும், எனவே அதற்காக உங்கள் வலை சேவையக தொகுப்புகளின் ஆவணங்களை சரிபார்க்கவும்.

உபுண்டுவில் அப்பாச்சி /etc/apache2/envvars:

export LANG='en_US.UTF-8'
export LC_ALL='en_US.UTF-8'

CentOS இல் Apache /etc/sysconfig/httpd (அல்லது /opt/rh/httpd24/root/etc/sysconfig/httpd):

LANG='en_US.UTF-8'

தனிப்பயன் சான்றிதழ் அதிகாரத்தைப் பயன்படுத்துதல்

http கோரிக்கைகளின் போது ssl சான்றிதழ்களை வலைபெயர்ப்பு சரிபார்க்கிறது. இயல்புநிலை மூட்டைகளில் நம்பப்படாத தனிப்பயன் சான்றிதழ் அதிகாரத்தைப் பயன்படுத்தினால், அதன் சான்றிதழை நம்பகமானதாக சேர்க்க வேண்டும்.

கணினி மட்டத்தில் இதைச் செய்வதே விருப்பமான அணுகுமுறையாகும், மேலும் விவரங்களுக்கு உங்கள் டிச்ட்ரோ ஆவணங்களைச் சரிபார்க்கவும் (உதாரணமாக டெபியனில் CA சான்றிதழை /usr/local/share/ca-certificates/ இல் வைத்து update-ca-certificates ஐ இயக்குவதன் மூலம் இதைச் செய்யலாம்.

Hint

வலைபெயர்ப்பு கொள்கலன் அதை தேடல் பாதையில் சேர்க்கவில்லை, அதை இயக்க முழு பாதையையும் நீங்கள் குறிப்பிட வேண்டும். உதாரணமாக:

docker compose exec -u root weblate /usr/sbin/update-ca-certificates

இது முடிந்ததும், கணினி கருவிகள் சான்றிதழை நம்பும், இதில் அறிவிலி அடங்கும்.

பைதான் குறியீடிற்கு, சிச்டம் சிஏ தொகுப்பைப் பயன்படுத்துவதற்கான கோரிக்கைகளை அதனுடன் அனுப்பியதற்குப் பதிலாக உள்ளமைக்க வேண்டும். பின்வரும் துணுக்கை settings.py (பாதை டெபியன் குறிப்பிட்டது) க்கு வைப்பதன் மூலம் இதை அடையலாம்:

import os

os.environ["REQUESTS_CA_BUNDLE"] = "/etc/ssl/certs/ca-certificates.crt"

கிளையன்ட் சொத்துக்களை சுருக்கவும்

வலைபெயர்ப்பு சாவாச்கிரிப்ட் மற்றும் சிஎச்எச் கோப்புகளுடன் வருகிறது. செயல்திறன் காரணங்களுக்காக ஒரு வாடிக்கையாளருக்கு அனுப்புவதற்கு முன்பு அவற்றை சுருக்குவது நல்லது. இயல்புநிலை உள்ளமைவில் இது சிறிய மேல்நிலை செலவில் பறக்கும்போது செய்யப்படுகிறது. பெரிய நிறுவல்களில், இணைப்பில்லாத சுருக்க பயன்முறையை இயக்க பரிந்துரைக்கப்படுகிறது. இது உள்ளமைவில் செய்யப்பட வேண்டும் மற்றும் ஒவ்வொரு வலைபெயர்ப்பு மேம்படுத்தலிலும் சுருக்கத்தைத் தூண்ட வேண்டும்.

django.conf.settings.COMPRESS_OFFLINE ஐ இயக்கி django.conf.settings.COMPRESS_OFFLINE_CONTEXT (பிந்தையது ஏற்கனவே எடுத்துக்காட்டு உள்ளமைவில் சேர்க்கப்பட்டுள்ளது):

COMPRESS_OFFLINE = True

ஒவ்வொரு வரிசையிலும் தற்போதைய பதிப்போடு பொருந்தக்கூடிய கோப்புகளை சுருக்க வேண்டும்:

weblate compress

Hint

அதிகாரப்பூர்வ கப்பல்துறை படம் இந்த அம்சத்தை ஏற்கனவே இயக்கியுள்ளது.

சேவையகம் இயங்கும்

Hint

கீழே விவரிக்கப்பட்டுள்ள சேவைகளில் உங்களுக்கு பட்டறிவு இல்லை என்றால், நீங்கள் டோக்கரைப் பயன்படுத்தி நிறுவுதல் முயற்சி செய்யலாம்.

வலைபெயர்ப்பை இயக்க உங்களுக்கு பல சேவைகள் தேவைப்படும், பரிந்துரைக்கப்பட்ட அமைப்பு பின்வருமாறு:

Note

சேவைகளுக்கு இடையில் சில சார்புகள் உள்ளன, எடுத்துக்காட்டாக செலரி அல்லது யு.டபிள்யூ.எச்.சி.ஐ செயல்முறைகளைத் தொடங்கும்போது கேச் மற்றும் தரவுத்தளம் இயங்க வேண்டும்.

பெரும்பாலான சந்தர்ப்பங்களில், நீங்கள் அனைத்து சேவைகளையும் ஒற்றை (மெய்நிகர்) சர்வரில் இயக்குவீர்கள், ஆனால் உங்கள் நிறுவல் அதிகமாக ஏற்றப்பட்டால், நீங்கள் சேவைகளைப் பிரிக்கலாம். இதில் உள்ள ஒரே வரம்பு என்னவென்றால், சிவரிக்கீரை மற்றும் Wsgi சேவையகங்களுக்கு DATA_DIR க்கான அணுகல் தேவை.

Note

WSGI செயல்முறையானது சிவரிக்கீரை செயல்முறையின் அதே பயனரின் கீழ் செயல்படுத்தப்பட வேண்டும், இல்லையெனில் DATA_DIR இல் உள்ள கோப்புகள் கலப்பு உரிமையுடன் சேமிக்கப்படும், இது இயக்க நேர சிக்கல்களுக்கு வழிவகுக்கும்.

மேலும் பார்க்கவும் கோப்பு முறைமை அனுமதிகள் மற்றும் செலரியைப் பயன்படுத்தி பின்னணி பணிகள்.

வலை சேவையகத்தை இயக்குகிறது

வெப்லேட்டை இயக்குவது வேறு எந்த சாங்கோ அடிப்படையிலான நிரலையும் இயக்குவதில் இருந்து வேறுபட்டதல்ல. சாங்கோ வழக்கமாக WSGI அல்லது FCGI ஆக செயல்படுத்தப்படுகிறது (கீழே உள்ள வெவ்வேறு வலை வீரர்களுக்கான எடுத்துக்காட்டுகளைப் பார்க்கவும்).

Note

The sample configuration files shown below are maintained in the Weblate source tree under weblate/examples/. They are included in source distributions and in this documentation, but Python wheels only install runtime files. When installing Weblate from PyPI, get the matching source distribution or source checkout before copying these examples.

சோதனை நோக்கங்களுக்காக, நீங்கள் சாங்கோவில் உள்ளமைக்கப்பட்ட வலை சேவையகத்தைப் பயன்படுத்தலாம்:

weblate runserver

Warning

தயாரிப்பு அமைப்பில் இந்த சேவையகத்தைப் பயன்படுத்த வேண்டாம். இது பாதுகாப்பு தணிக்கைகள் அல்லது செயல்திறன் சோதனைகள் மூலம் செல்லவில்லை. runserver இல் சாங்கோ ஆவணங்களையும் பார்க்கவும்.

Hint

சாங்கோ உள்ளமைக்கப்பட்ட சேவையகம் நிலையான கோப்புகளை DEBUG செயல்படுத்தப்பட்டதன் மூலம் மட்டுமே வழங்குகிறது. உற்பத்திப் பயன்பாட்டிற்கு, WSGI அமைப்புகளைப் பார்க்கவும்:

நிலையான கோப்புகளை வழங்குதல்

Changed in version 5.15.2: /media/ ச்கிரீன்சாட்களை வழங்குவதற்கு இனி பயன்படுத்தப்படாது.

சாங்கோ அதன் நிலையான கோப்புகளை ஒரே கோப்பகத்தில் சேகரிக்க வேண்டும். அவ்வாறு செய்ய, weblate collectstatic --noinput ஐ இயக்கவும். இது நிலையான கோப்புகளை STATIC_ROOT அமைப்பால் குறிப்பிடப்பட்ட கோப்பகத்தில் நகலெடுக்கும் (இது இயல்புநிலையாக உள்ள static கோப்பகத்தில் CACHE_DIR).

உங்கள் வலை சேவையகத்திலிருந்து நிலையான கோப்புகளை நேரடியாக வழங்க பரிந்துரைக்கப்படுகிறது, பின்வரும் பாதைகளுக்கு நீங்கள் அதைப் பயன்படுத்த வேண்டும்:

/static/

வலைபெயர்ப்பு மற்றும் நிர்வாக இடைமுகத்திற்கான நிலையான கோப்புகளை வழங்குகிறது (STATIC_ROOT மூலம் வரையறுக்கப்பட்டுள்ளது).

/favicon.ico

/static/favicon.ico வழங்குவதற்கான விதியை மீண்டும் எழுத மீண்டும் எழுத வேண்டும்.

உள்ளடக்க பாதுகாப்பு கொள்கை

இயல்புநிலை வலைபெயர்ப்பு உள்ளமைவு weblate.middleware.SecurityMiddleware மிடில்வேரை செயல்படுத்துகிறது, இது பாதுகாப்பு தொடர்பான HTTP தலைப்புகளை அமைக்கிறது Content-Security-Policy அல்லது X-XSS-Protection. இவை இயல்புநிலையாக வலைபெயர்ப்பு மற்றும் அதன் உள்ளமைவுடன் பணிபுரிய அமைக்கப்பட்டுள்ளன, ஆனால் இதற்கு உங்கள் சூழலுக்கான தனிப்பயனாக்கம் தேவைப்படலாம்.

NGINX மற்றும் Granian க்கான மாதிரி கட்டமைப்பு

பின்வரும் உள்ளமைவு கிரானியன் என்சிஎன்எக்ச் வெப்சர்வரைப் பயன்படுத்தி வெப்லேட்டை இயக்குகிறது:

weblate/examples/weblate.nginx.granian.conf
#
# nginx configuration for Weblate
#
# You will want to change:
#
# - server_name
# - change /home/weblate/weblate-env to location where Weblate Python environment is placed
# - change /home/weblate/data to match your DATA_DIR
# - change /home/weblate/data/cache to match your CACHE_DIR
# - change python3.12 to match your Python version
# - change weblate user to match your Weblate user
#
server {
    listen 80;
    server_name weblate;
    # Not used
    root /var/www/html;

    location ~ ^/favicon.ico$ {
        # CACHE_DIR/static/favicon.ico
        alias /home/weblate/data/cache/static/favicon.ico;
        expires 30d;
    }

    location /static/ {
        # CACHE_DIR/static/
        alias /home/weblate/data/cache/static/;
        expires 30d;
    }

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_host;
        proxy_pass http://127.0.0.1:8888;
        proxy_read_timeout 3600;
    }
}

Nginx மற்றும் kunicorn க்கான மாதிரி உள்ளமைவு

The following configuration runs Weblate using Gunicorn under the NGINX webserver (weblate/examples/weblate.nginx.gunicorn.conf in the source tree):

#
# nginx configuration for Weblate
#
# You will want to change:
#
# - server_name
# - change /home/weblate/weblate-env to location where Weblate Python environment is placed
# - change /home/weblate/data to match your DATA_DIR
# - change /home/weblate/data/cache to match your CACHE_DIR
# - change python3.12 to match your Python version
# - change weblate user to match your Weblate user
#
server {
    listen 80;
    server_name weblate;
    # Not used
    root /var/www/html;

    location ~ ^/favicon.ico$ {
        # CACHE_DIR/static/favicon.ico
        alias /home/weblate/data/cache/static/favicon.ico;
        expires 30d;
    }

    location /static/ {
        # CACHE_DIR/static/
        alias /home/weblate/data/cache/static/;
        expires 30d;
    }

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_host;
        proxy_pass http://unix:/run/gunicorn.sock;
        proxy_read_timeout 3600;
    }
}

nginx மற்றும் uwsgi க்கான மாதிரி உள்ளமைவு

விளைவாக்கம் வெப்சர்வரை இயக்க, வலைபெயர்ப்பு உடன் நிறுவப்பட்ட WSGI ரேப்பரைப் பயன்படுத்தவும் (பைதான் சூழலைப் பயன்படுத்தும் போது அது ~/weblate-env/lib/python3.14/site-packages/weblate/wsgi.py என நிறுவப்படும்). பைதான் தேடல் பாதையை உங்கள் பைதான் சூழலுக்கும் அமைக்க மறக்காதீர்கள் (உதாரணமாக uWSGI இல் virtualenv = /home/user/weblate-env ஐப் பயன்படுத்துதல்).

பின்வரும் உள்ளமைவு nginx வெப்சர்வரின் கீழ் uwsgi ஆக வலைபெயர்ப்பு இயக்குகிறது.

Configuration for NGINX (weblate/examples/weblate.nginx.conf in the source tree):

#
# nginx configuration for Weblate
#
# You will want to change:
#
# - server_name
# - change /home/weblate/weblate-env to location where Weblate Python environment is placed
# - change /home/weblate/data to match your DATA_DIR
# - change /home/weblate/data/cache to match your CACHE_DIR
# - change python3.12 to match your Python version
# - change weblate user to match your Weblate user
#
server {
    listen 80;
    server_name weblate;
    # Not used
    root /var/www/html;

    location ~ ^/favicon.ico$ {
        # CACHE_DIR/static/favicon.ico
        alias /home/weblate/data/cache/static/favicon.ico;
        expires 30d;
    }

    location /static/ {
        # CACHE_DIR/static/
        alias /home/weblate/data/cache/static/;
        expires 30d;
    }

    location / {
        include uwsgi_params;
        # Needed for long running operations in admin interface
        uwsgi_read_timeout 3600;
        # Adjust based to uwsgi configuration:
        uwsgi_pass unix:///run/uwsgi/app/weblate/socket;
        # uwsgi_pass 127.0.0.1:8080;
    }
}

Configuration for uWSGI (weblate/examples/weblate.uwsgi.ini in the source tree):

#
# uWSGI configuration for Weblate
#
# You will want to change:
#
# - change /home/weblate/weblate-env to location where Weblate Python environment is placed
# - change /home/weblate/data to match your DATA_DIR
# - change python3.12 to match your Python version
# - change weblate user to match your Weblate user
#
[uwsgi]
plugins       = python3
master        = true
protocol      = uwsgi
socket        = 127.0.0.1:8080
wsgi-file     = /home/weblate/weblate-env/lib/python3.12/site-packages/weblate/wsgi.py

# Add path to Weblate checkout if you did not install
# Weblate by pip
# python-path   = /path/to/weblate

# Path to the Python environment
virtualenv = /home/weblate/weblate-env

# Needed for OAuth/OpenID
buffer-size   = 8192

# Reload when consuming too much of memory
reload-on-rss = 250

# Increase number of workers for heavily loaded sites
workers       = 8

# Enable threads for Sentry error submission
enable-threads = true

# Child processes do not need file descriptors
close-on-exec = true

# Avoid default 0000 umask
umask = 0022

# Run as weblate user
uid = weblate
gid = weblate

# Enable harakiri mode (kill requests after some time)
# harakiri = 3600
# harakiri-verbose = true

# Enable uWSGI stats server
# stats = :1717
# stats-http = true

# Do not log some errors caused by client disconnects
ignore-sigpipe = true
ignore-write-errors = true
disable-write-exception = true

அப்பாச்சிக்கான மாதிரி உள்ளமைவு

வலைபெயர்ப்புடுடன் wsgi ஐப் பயன்படுத்தும் போது முன்னுரிமை mpm ஐப் பயன்படுத்த பரிந்துரைக்கப்படுகிறது.

The following configuration runs Weblate as WSGI, you need to have enabled mod_wsgi (weblate/examples/apache.conf in the source tree):

#
# VirtualHost for Weblate
#
# You will want to change:
#
# - ServerAdmin and ServerName
# - change /home/weblate/weblate-env to location where Weblate Python environment is placed
# - change /home/weblate/data to match your DATA_DIR
# - change /home/weblate/data/cache to match your CACHE_DIR
# - change python3.12 to match Python version mod-wsgi is compiled for
# - change weblate user to match your Weblate user
#
<VirtualHost *:80>
    ServerAdmin admin@weblate.example.org
    ServerName weblate.example.org

    # CACHE_DIR/static/favicon.ico
    Alias /favicon.ico /home/weblate/data/cache/static/favicon.ico

    # CACHE_DIR/static/
    Alias /static/ /home/weblate/data/cache/static/
    <Directory /home/weblate/data/cache/static/>
        Require all granted
    </Directory>

    # Path to your Weblate Python environment
    WSGIDaemonProcess weblate python-home=/home/weblate/weblate-env user=weblate request-timeout=600
    WSGIProcessGroup weblate
    WSGIApplicationGroup %{GLOBAL}

    WSGIScriptAlias / /home/weblate/weblate-env/lib/python3.12/site-packages/weblate/wsgi.py process-group=weblate
    WSGIPassAuthorization On

    <Directory /home/weblate/weblate-env/lib/python3.12/site-packages/weblate/>
        <Files wsgi.py>
        Require all granted
        </Files>
    </Directory>

</VirtualHost>

Note

வலைபெயர்ப்பு க்கு பைதான் 3 தேவைப்படுகிறது, எனவே நீங்கள் modwsgi இன் பைதான் 3 மாறுபாட்டை இயக்குகிறீர்கள் என்பதை உறுதிப்படுத்தவும். வழக்கமாக இது ஒரு தனி தொகுப்பாகக் கிடைக்கும், உதாரணமாக libapache2-mod-wsgi-py3.

வலைபெயர்ப்பு நிறுவ பொருந்தக்கூடிய பைதான் பதிப்பைப் பயன்படுத்து.

அப்பாச்சி மற்றும் துப்பாக்கிக்காரனுக்கான மாதிரி உள்ளமைவு

The following configuration runs Weblate in Gunicorn and Apache 2.4 (weblate/examples/apache.gunicorn.conf in the source tree):

#
# VirtualHost for Weblate using gunicorn on localhost:8000
#
# You will want to change:
#
# - ServerAdmin and ServerName
# - change /home/weblate/weblate-env to location where Weblate Python environment is placed
# - change /home/weblate/data to match your DATA_DIR
# - change /home/weblate/data/cache to match your CACHE_DIR
# - change weblate user to match your Weblate user
#
<VirtualHost *:443>
    ServerAdmin admin@weblate.example.org
    ServerName weblate.example.org

    # CACHE_DIR/static/favicon.ico
    Alias /favicon.ico /home/weblate/data/cache/static/favicon.ico

    # CACHE_DIR/static/
    Alias /static/ /home/weblate/data/cache/static/
    <Directory /home/weblate/data/cache/static/>
        Require all granted
    </Directory>

    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/https_cert.cert
    SSLCertificateKeyFile /etc/apache2/ssl/https_key.pem
    SSLProxyEngine On

    ProxyPass /favicon.ico !
    ProxyPass /static/ !

    ProxyPass / http://localhost:8000/
    ProxyPassReverse / http://localhost:8000/
    ProxyPreserveHost On
</VirtualHost>

கிரானியனைத் தொடங்க மாதிரி உள்ளமைவு

வலைபெயர்ப்பு ஆனது wsgi விருப்ப சார்புநிலையைக் கொண்டுள்ளது (பார்க்க பைதான் சார்புநிலைகள்) இது Granian ஐ இயக்க உங்களுக்கு தேவையான அனைத்தையும் நிறுவும். வலைபெயர்ப்பு ஐ நிறுவும் போது நீங்கள் அதை பின்வருமாறு குறிப்பிடலாம்:

uv pip install Weblate[all,wsgi]

நீங்கள் கிரானியன் நிறுவப்பட்டதும், நீங்கள் அதை இயக்கலாம். இது பொதுவாக கணினி மட்டத்தில் செய்யப்படுகிறது. பின்வரும் எடுத்துக்காட்டுகள் systemd வழியாக தொடங்குவதைக் காட்டுகின்றன:

/etc/systemd/system/granian.service
[Unit]
Description=granian daemon
After=network.target

[Service]
User=weblate
Group=weblate
WorkingDirectory=/home/weblate/weblate-env/
Environment="DJANGO_SETTINGS_MODULE=weblate.settings"
RuntimeDirectory=granian
ExecStart=/home/weblate/weblate-env/bin/granian \
    --no-ws \
    --workers-max-rss 350 \
    --interface wsgi \
    --workers 2 \
    --backpressure 16 \
    --runtime-threads 8 \
    --runtime-mode mt \
    --port 8888 \
    weblate.wsgi:application

[Install]
WantedBy=multi-user.target
~

குனிகார்னைத் தொடங்க மாதிரி உள்ளமைவு

Gunicorn தனித்தனியாக நிறுவப்பட வேண்டும்:

uv pip install gunicorn

நீங்கள் கன்னிகார்ன் நிறுவியதும், அதை இயக்கலாம். இது பொதுவாக கணினி மட்டத்தில் செய்யப்படுகிறது. பின்வரும் எடுத்துக்காட்டுகள் SystemD வழியாக தொடங்குகின்றன:

/etc/systemd/system/gunicorn.socket
[Unit]
Description=gunicorn socket

[Socket]
ListenStream=/run/gunicorn.sock

[Install]
WantedBy=sockets.target
/etc/systemd/system/gunicorn.service
[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target

[Service]
User=weblate
Group=weblate
WorkingDirectory=/home/weblate/weblate-env/
Environment="DJANGO_SETTINGS_MODULE=weblate.settings"
ExecStart=/home/weblate/weblate-env/bin/gunicorn \
    --preload \
    --timeout 3600 \
    --graceful-timeout 3600 \
    --worker-class=gthread \
    --workers=2 \
    --threads=16 \
    --bind unix:/run/gunicorn.sock \
    weblate.wsgi:application

[Install]
WantedBy=multi-user.target

பாதையின் கீழ் வலைபெயர்ப்பு இயங்குகிறது

வலைபெயர்ப்புடுடன் wsgi ஐப் பயன்படுத்தும் போது முன்னுரிமை mpm ஐப் பயன்படுத்த பரிந்துரைக்கப்படுகிறது.

A sample Apache configuration to serve Weblate under /weblate. Again using mod_wsgi (weblate/examples/apache-path.conf in the source tree):

#
# VirtualHost for Weblate, running under /weblate path
#
# You will want to change:
#
# - ServerAdmin and ServerName
# - change /home/weblate/weblate-env to location where Weblate Python environment is placed
# - change /home/weblate/data to match your DATA_DIR
# - change /home/weblate/data/cache to match your CACHE_DIR
# - change python3.12 to match Python version mod-wsgi is compiled for
# - change weblate user to match your Weblate user
#
<VirtualHost *:80>
    ServerAdmin admin@weblate.example.org
    ServerName weblate.example.org

    # CACHE_DIR/static/favicon.ico
    Alias /weblate/favicon.ico /home/weblate/data/cache/static/favicon.ico

    # CACHE_DIR/static/
    Alias /weblate/static/ /home/weblate/data/cache/static/
    <Directory /home/weblate/data/cache/static/>
        Require all granted
    </Directory>

    # Path to your Weblate Python environment
    WSGIDaemonProcess weblate python-home=/home/weblate/weblate-env user=weblate request-timeout=600
    WSGIProcessGroup weblate
    WSGIApplicationGroup %{GLOBAL}

    WSGIScriptAlias /weblate /home/weblate/weblate-env/lib/python3.12/site-packages/weblate/wsgi.py process-group=weblate
    WSGIPassAuthorization On

    <Directory /home/weblate/weblate-env/lib/python3.12/site-packages/weblate/>
        <Files wsgi.py>
        Require all granted
        </Files>
    </Directory>

</VirtualHost>

கூடுதலாக, நீங்கள் சரிசெய்ய வேண்டும் weblate/settings.py:

URL_PREFIX = "/weblate"

செலரியைப் பயன்படுத்தி பின்னணி பணிகள்

வழக்கமான மற்றும் பின்னணி பணிகளை இயக்க வலைபெயர்ப்பு செலரி பயன்படுத்துகிறது. இவற்றை இயக்கும் ஒரு செலரி சேவையை நீங்கள் இயக்க வேண்டும். எடுத்துக்காட்டாக, பின்வரும் செயல்பாடுகளைக் கையாள்வதற்கு இது பொறுப்பு (இந்த பட்டியல் முழுமையடையவில்லை):

வால்கி அல்லது ரெடிசை பின்தளமாகப் பயன்படுத்தும் ஒரு பொதுவான அமைப்பு இதுபோல் தெரிகிறது:

CELERY_TASK_ALWAYS_EAGER = False
CELERY_BROKER_URL = "redis://localhost:6379"
CELERY_RESULT_BACKEND = CELERY_BROKER_URL

You should also start the Celery worker to process the tasks and start scheduled tasks. For debugging or development, this can be done directly on the command-line:

celery --app=weblate.utils worker --beat --queues=celery,notify,memory,translate,backup

Note

சிவரிக்கீரை செயல்முறையானது WSGI செயல்முறையின் அதே பயனரின் கீழ் செயல்படுத்தப்பட வேண்டும், இல்லையெனில் DATA_DIR இல் உள்ள கோப்புகள் கலப்பு உரிமையுடன் சேமிக்கப்படும், இது இயக்க நேர சிக்கல்களுக்கு வழிவகுக்கும்.

மேலும் பார்க்கவும் கோப்பு முறைமை அனுமதிகள் மற்றும் சேவையகம் இயங்கும்.

ஆர்வமுள்ள பயன்முறையைப் பயன்படுத்தி wsgi இல் செலரி பணிகளை செயல்படுத்துதல்

Note

இது வலை இடைமுகத்தில் கடுமையான செயல்திறன் தாக்கத்தை ஏற்படுத்தும், மேலும் வழக்கமான தூண்டுதலைப் பொறுத்து அம்சங்களை உடைக்கும் (எடுத்துக்காட்டாக நிலுவையில் உள்ள மாற்றங்கள், டைசச்ட் அறிவிப்புகள் அல்லது காப்புப்பிரதிகள்).

வளர்ச்சிக்கு, நீங்கள் ஆர்வமுள்ள உள்ளமைவைப் பயன்படுத்த விரும்பலாம், இது எல்லா பணிகளையும் செயலாக்குகிறது:

CELERY_TASK_ALWAYS_EAGER = True
CELERY_BROKER_URL = "memory://"
CELERY_TASK_EAGER_PROPAGATES = True

கணினி சேவையாக செலரியை இயக்குகிறது

Most likely you will want to run Celery as a daemon and that is covered by Daemonization. For the most common Linux setup using systemd, adapt the example files listed below. These examples are maintained in the Weblate source tree under weblate/examples/; Python wheels do not install these deployment samples.

Systemd அலகு /etc/systemd/system/celery-weblate.service:

[Unit]
Description=Celery Service (Weblate)
After=network.target

[Service]
Type=forking
User=weblate
Group=weblate
EnvironmentFile=/etc/default/celery-weblate
WorkingDirectory=/home/weblate
RuntimeDirectory=celery
RuntimeDirectoryPreserve=restart
LogsDirectory=celery
ExecStart=/bin/sh -c '${CELERY_BIN} multi start ${CELERYD_NODES} \
  -A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \
  --logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}'
ExecStop=/bin/sh -c '${CELERY_BIN} multi stopwait ${CELERYD_NODES} \
  --pidfile=${CELERYD_PID_FILE}'
ExecReload=/bin/sh -c '${CELERY_BIN} multi restart ${CELERYD_NODES} \
  -A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \
  --logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}'

[Install]
WantedBy=multi-user.target

சுற்றுச்சூழல் உள்ளமைவு /etc/default/celery-weblate:

# Name of nodes to start
CELERYD_NODES="celery notify memory backup translate"

# Absolute or relative path to the 'celery' command:
CELERY_BIN="/home/weblate/weblate-env/bin/celery"

# App instance to use
# comment out this line if you don't use an app
CELERY_APP="weblate.utils"

# Extra command-line arguments to the worker. You might need to customize
# concurrency depending on the available resources and Weblate usage. Increase
# the concurrency if you get weblate.E019 error, decrease it if you are on a
# low-resource system.
CELERYD_OPTS="--beat:celery --queues:celery=celery --concurrency:celery=2 --prefetch-multiplier:celery=4 \
    --queues:notify=notify --concurrency:notify=2 --prefetch-multiplier:notify=10 \
    --queues:memory=memory --concurrency:memory=2 --prefetch-multiplier:memory=10 \
    --queues:translate=translate --concurrency:translate=4 --prefetch-multiplier:translate=4 \
    --queues:backup=backup  --concurrency:backup=1 --prefetch-multiplier:backup=2"

# Logging configuration
# - %n will be replaced with the first part of the nodename.
# - %I will be replaced with the current child process index
#   and is important when using the prefork pool to avoid race conditions.
CELERYD_PID_FILE="/run/celery/weblate-%n.pid"
CELERYD_LOG_FILE="/var/log/celery/weblate-%n%I.log"
CELERYD_LOG_LEVEL="INFO"

/etc/logrotate.d/celery என வைக்கப்பட வேண்டிய logrotate ஐப் பயன்படுத்தி செலரி பதிவுகளை சுழற்றுவதற்கான கூடுதல் உள்ளமைவு:

/var/log/celery/*.log {
        weekly
        missingok
        rotate 12
        compress
        notifempty
}

செலரி துடிப்பைப் பயன்படுத்தி அவ்வப்போது பணிகள்

திட்டமிடப்பட்ட பணிகளுக்கான உள்ளமைக்கப்பட்ட அமைப்புடன் வலைபெயர்ப்பு வருகிறது. பணி அட்டவணை தரவுத்தளத்தில் சேமிக்கப்படுகிறது மற்றும் செலரி பீட் டீமனால் பணிகள் செயல்படுத்தப்படுகின்றன.

Hint

கூடுதல் பணிகளை நீங்கள் settings.py இல் வரையறுக்கலாம், எடுத்துக்காட்டாக சோம்பேறி கம்யூச் ஐப் பார்க்கவும்.

செலரி நிலையை கண்காணித்தல்

சிவரிக்கீரை பணி வரிசைகளின் தற்போதைய நீளத்தை மேலாண்மை இடைமுகம் இல் காணலாம் அல்லது கட்டளை வரியில் celery_queues ஐப் பயன்படுத்தலாம். வரிசை மிக நீண்டதாக இருந்தால், நிர்வாகி இடைமுகத்தில் உள்ளமைவுப் பிழையையும் பெறுவீர்கள்.

Warning

செலரி பிழைகள் முன்னிருப்பாக செலரி பதிவில் மட்டுமே உள்நுழைந்திருக்கும் மற்றும் பயனருக்குத் தெரியாது. அத்தகைய தோல்விகள் பற்றிய மேலோட்டத்தை நீங்கள் பெற விரும்பினால், பிழை அறிக்கைகளை சேகரித்தல் மற்றும் செயல்திறனைக் கண்காணித்தல் என்பதை உள்ளமைக்க பரிந்துரைக்கப்படுகிறது.

ஒற்றை-செயல்முறை செலரி அமைப்பு

உங்களிடம் மிகக் குறைந்த நினைவகம் இருந்தால், நீங்கள் வலைபெயர்ப்பு செயல்முறைகளின் எண்ணிக்கையை குறைக்க விரும்பலாம். அனைத்து செலரி பணிகளையும் ஒரே செயல்பாட்டில் பயன்படுத்தலாம்:

celery --app=weblate.utils worker --beat --queues=celery,notify,memory,translate,backup --pool=solo

டோக்கரைப் பயன்படுத்தும் நிறுவல் CELERY_SINGLE_PROCESS அமைப்பதன் மூலம் ஒற்றை-செயல்முறை செலரி அமைப்பைப் பயன்படுத்த உள்ளமைக்கப்படும்.

Warning

இது வலைபெயர்ப்பில் குறிப்பிடத்தக்க செயல்திறன் தாக்கத்தை ஏற்படுத்தும்.

வலைபெயர்ப்பு கண்காணித்தல்

வலைபெயர்ப்பு எளிய சுகாதார சோதனைகளில் பயன்படுத்தப்பட வேண்டிய /எல்த்ச்/ முகவரி ஐ வழங்குகிறது, எடுத்துக்காட்டாக குபெர்னெட்சைப் பயன்படுத்துகிறது. இந்த முகவரி ஐப் பயன்படுத்தி கப்பல்துறை கொள்கலன் உள்ளமைக்கப்பட்ட சுகாதார சோதனை உள்ளது.

வலைபெயர்ப்பு இன் அளவீடுகளைக் கண்காணிக்க நீங்கள் GET /api/metrics/ பநிஇ எண்ட்பாயிண்ட்டைப் பயன்படுத்தலாம்.

பிழை அறிக்கைகளை சேகரித்தல் மற்றும் செயல்திறனைக் கண்காணித்தல்

வலைபெயர்ப்பு, வேறு எந்த மென்பொருளையும் போல, தோல்வியடையும். பயனுள்ள தோல்வி நிலைகளை சேகரிக்க, இதுபோன்ற தகவல்களை சேகரிக்க மூன்றாம் தரப்பு சேவைகளைப் பயன்படுத்த பரிந்துரைக்கிறோம். செலரி பணிகளில் தோல்வியுற்றால் இது மிகவும் பயனுள்ளதாக இருக்கும், இல்லையெனில் பதிவுகளுக்கு பிழையை மட்டுமே புகாரளிக்கும், மேலும் அவை குறித்து உங்களுக்கு அறிவிக்கப்படாது. வலைபெயர்ப்பு பின்வரும் சேவைகளுக்கு ஆதரவைக் கொண்டுள்ளது:

மின்னஞ்சல்

இயல்புநிலை வலைபெயர்ப்பு கட்டமைப்புக் கருவிகள் django.utils.log.AdminEmailHandler வழியாகச் சேவையக பிழைகள்மீது மின்னஞ்சல்களை அனுப்ப சாங்கோ. இது மிகக் குறைவான முயற்சியாகும், ஆனால் தனியுரிமை காரணங்களுக்காக நீங்கள் பிற விருப்பங்களைக் கருத்தில் கொள்ள வேண்டும், ஏனெனில் பிழை மின்னஞ்சல்களில் முக்கியமான தரவு இருக்கலாம். நீங்கள் அதைப் பற்றி மேலும் படிக்கலாம் Security implications.

இந்த நடத்தையை முடக்க, வலைபெயர்ப்பு அமைப்புகளில் உள்ள LOGGING என்பதிலிருந்து mail_admins ஐ அகற்றவும் அல்லது Docker சூழலில் WEBLATE_ADMIN_NOTIFY_ERROR ஐ முடக்கவும்.

அனுப்பப்பட்ட

வெப்லேட்டில் சென்ட்ரி க்கான உள்ளமைக்கப்பட்ட உதவி உள்ளது. அதைப் பயன்படுத்த, settings.py இல் SENTRY_DSN அமைத்தால் போதும்:

SENTRY_DSN = "https://id@your.sentry.example.com/"

வரையறுக்கப்பட்ட சதவீத செயல்பாடுகளுக்கான தடயங்கள் மற்றும் சுயவிவரங்களைச் சேகரிப்பதன் மூலம் வெப்லேட்டின் செயல்திறனைக் கண்காணிக்கவும் சென்ட்ரி பயன்படுத்தப்படலாம். இதை SENTRY_TRACES_SAMPLE_RATE மற்றும் SENTRY_PROFILES_SAMPLE_RATE ஐப் பயன்படுத்தி கட்டமைக்க முடியும்.

ரவல்பார்

வலைபெயர்ப்பு ரோல்பார் க்கான உள்ளமைக்கப்பட்ட ஆதரவைக் கொண்டுள்ளது. இதைப் பயன்படுத்த, Python க்கான அறிவிப்பாளருக்கான வழிமுறைகளைப் பின்பற்றினால் போதும்.

சுருக்கமாக, நீங்கள் சரிசெய்ய வேண்டும் settings.py:

# Add rollbar as last middleware:
MIDDLEWARE = [
    # … other middleware classes …
    "rollbar.contrib.django.middleware.RollbarNotifierMiddleware",
]

# Configure client access
ROLLBAR = {
    "access_token": "POST_SERVER_ITEM_ACCESS_TOKEN",
    "environment": "development" if DEBUG else "production",
    "branch": "main",
    "root": "/absolute/path/to/code/root",
}

மற்ற அனைத்தும் தானாகவே ஒருங்கிணைக்கப்படுகின்றன, நீங்கள் இப்போது சேவையகம் மற்றும் கிளையன்ட் பக்க பிழைகள் இரண்டையும் சேகரிப்பீர்கள்.

Note

பிழை பதிவு செய்வதில் விதிவிலக்குகளும் அடங்கும், ஆனால் ஒரு சிக்கலைக் குறிக்கலாம் - பதிவேற்றிய கோப்பின் பாகுபடுத்தல் போன்றவை.

கிரேலாக் பதிவு மேலாண்மை

Added in version 5.9.

கெல்ஃப் டி.சி.பி நெறிமுறையைப் பயன்படுத்தி பதிவு செய்ய வலைபெயர்ப்பு கட்டமைக்கப்படலாம். இது கிரேலாக் ஒருங்கிணைப்புக்காக உருவாக்கப்பட்டது, ஆனால் எந்தவொரு இணக்கமான பதிவு தளத்திலும் பயன்படுத்தலாம்.

உள்ளமைவு கொதிகலன் மாதிரி உள்ளமைவு இல் சேர்க்கப்பட்டுள்ளது, டோக்கருக்கு இதை WEBLATE_LOG_GELF_HOST பயன்படுத்தி கட்டமைக்க முடியும்.

வலைபெயர்ப்பு மற்றொரு சேவையகத்திற்கு இடம்பெயர்கிறது

வலைபெயர்ப்பு மற்றொரு சேவையகத்திற்கு இடம்பெயர்வது மிகவும் எளிதாக இருக்க வேண்டும், இருப்பினும் இது சில இடங்களில் தரவை சேமிக்கிறது, அதை நீங்கள் கவனமாக இடம்பெயர வேண்டும். இடம்பெயர்வுக்கு வலைபெயர்ப்பு செய்வதை நிறுத்துவதே சிறந்த அணுகுமுறை.

இடம்பெயரும் தரவுத்தளம்

The most straightforward approach is to use database native tools, as they are usually the most effective (e.g. pg_dump). Alternatively you can use replication if your database supports it.

See also

பிற தரவுத்தளங்களிலிருந்து postgresql க்கு இடம்பெயர்கிறது இல் விவரிக்கப்பட்டுள்ள தரவுத்தளங்களுக்கு இடையே இடம்பெயர்தல்.

வி.சி.எச் களஞ்சியங்களை இடம்பெயர்கிறது

DATA_DIR என்பதன் கீழ் சேமிக்கப்பட்ட பகஅ களஞ்சியங்களும் நகர்த்தப்பட வேண்டும். நீங்கள் அவற்றை நகலெடுக்கலாம் அல்லது இடம்பெயர்வை மிகவும் திறம்படச் செய்ய rsync ஐப் பயன்படுத்தலாம்.

மற்ற குறிப்புகள்

வால்கி, ரெடிச், கிரான் வேலைகள் அல்லது தனிப்பயன் அங்கீகரிப்பு பின்தளங்கள் போன்ற பிற சேவைகளை வலைபெயர்ப்பு பயன்படுத்தியிருக்கக் கூடும் என்பதை மறந்துவிடாதீர்கள்.