ໂມດູນ Weblate ເພີ່ມເຕີມ

ມີຫຼາຍໂມດູນເພີ່ມເຕີມສຳລັບການຕິດຕັ້ງຂອງທ່ານ.

Git exporter

ສະໜອງການເຂົ້າເຖິງແບບອ່ານຢ່າງດຽວໄປຍັງ Git repository ເບື້ອງຫຼັງໂດຍໃຊ້ HTTP(S).

ການຕິດຕັ້ງ

  1. ເພີ່ມ weblate.gitexport ໄປຍັງ installed apps ໃນ settings.py:

    INSTALLED_APPS += ("weblate.gitexport",)
    
  2. ສົ່ງອອກ repositories ທີ່ມີຢູ່ໂດຍການຍ້າຍຖານຂໍ້ມູນຂອງທ່ານຫຼັງຈາກການຕິດຕັ້ງ:

    weblate migrate
    

Hint

Git exporter ຖືກເປີດໃຊ້ໃນ Docker image ທາງການຂອງພວກເຮົາ. ເພື່ອປິດມັນ, ໃຊ້:

WEBLATE_REMOVE_APPS=weblate.gitexport

ການນຳໃຊ້

ໂມດູນນີ້ຈະເຊື່ອມຕໍ່ເຂົ້າກັບ Weblate ໂດຍອັດຕະໂນມັດ ແລະ ຕັ້ງຄ່າ URL repository ທີ່ສົ່ງອອກໃນ ການຕັ້ງຄ່າ Component. repositories ສາມາດເຂົ້າເຖິງໄດ້ພາຍໃຕ້ສ່ວນ /git/ ຂອງ Weblate URL, ຕົວຢ່າງ https://example.org/git/weblate/main/.

Repositories ສຳລັບໂຄງການສາທາລະນະສາມາດຖືກ clone ໂດຍບໍ່ຕ້ອງມີການຢັ້ງຢືນຕົວຕົນ:

git clone 'https://example.org/git/weblate/main/'

ການເຂົ້າເຖິງເພື່ອເບິ່ງ repositories ທີ່ມີການເຂົ້າເຖິງແບບຈຳກັດ (ດ້ວຍ Private access control ຫຼື ເມື່ອເປີດໃຊ້ REQUIRE_LOGIN) ຕ້ອງໃຊ້ API token ເຊິ່ງສາມາດໄດ້ຮັບໃນ user profile ຂອງທ່ານ:

git clone 'https://user:KEY@example.org/git/weblate/main/'

Note

Weblate serves the Git repository itself, but it does not serve Git LFS objects. See Git LFS for supported behavior. Clone repositories using Git LFS from the upstream repository and add Weblate as another remote. If you only need Git-tracked files, you can clone from Weblate with GIT_LFS_SKIP_SMUDGE=1 to skip downloading Git LFS objects.

Hint

ໂດຍເລີ່ມຕົ້ນ, ສະມາຊິກຂອງກຸ່ມ Users ແລະ ຜູ້ໃຊ້ທີ່ບໍ່ລະບຸຕົວຕົນ ມີການເຂົ້າເຖິງ repositories ສຳລັບໂຄງການສາທາລະນະຜ່ານບົດບາດ Access repository ແລະ Power user.

ການຮຽກເກັບເງິນ

ສິ່ງນີ້ຖືກໃຊ້ໃນ Hosted Weblate ເພື່ອກຳນົດແຜນການເກັບເງິນ, ຕິດຕາມໃບແຈ້ງໜີ້ ແລະ ຂີດຈຳກັດການນຳໃຊ້.

ການຕິດຕັ້ງ

1. Add weblate.billing to installed apps in settings.py:

INSTALLED_APPS += ("weblate.billing",)
  1. ດຳເນີນການຍ້າຍຖານຂໍ້ມູນ (migration) ເພື່ອຕິດຕັ້ງໂຄງສ້າງຖານຂໍ້ມູນເພີ່ມເຕີມສຳລັບໂມດູນ (ຖ້າຕ້ອງການ):

weblate migrate

ການສ້າງ ແລະ ມອບໝາຍແຜນການເກັບເງິນ

ທຳອິດທ່ານຕ້ອງສ້າງແຜນການເກັບເງິນເພື່ອເປີດໃຊ້ງານການເກັບເງິນ. ໄປທີ່ພາກ Administration (ສະແດງດ້ວຍໄອຄອນປະແຈ) ແລະ ເປີດໜ້າຈໍ Tools. ຈາກນັ້ນ, ໄປທີ່ Django admin interface.

ໃນ Django admin interface, ຊອກຫາພາກ BILLING ແລະ ເພີ່ມແຜນການເກັບເງິນ. ຕົວຢ່າງ, ທ່ານສາມາດເພີ່ມແຜນ Free ໂດຍບໍ່ມີຄ່າໃຊ້ຈ່າຍ.

ຖ້າທ່ານຕ້ອງການມອບໝາຍແຜນການເກັບເງິນໃຫ້ກັບໂຄງການທີ່ມີຢູ່, ສິ່ງນີ້ສາມາດເຮັດໄດ້ພາຍໃນ Django admin interface ໂດຍໃຊ້ຕົວເລືອກ Customer billings.

ສຸດທ້າຍ, Django admin interface ມີຕົວເລືອກ Invoice ສຳລັບການບັນທຶກການຊຳລະເງິນຂອງລູກຄ້າ.

ການນຳໃຊ້

ຫຼັງຈາກການຕິດຕັ້ງ, ທ່ານສາມາດຄວບຄຸມການເກັບເງິນໄດ້ໃນ admin interface. ຜູ້ໃຊ້ທີ່ເປີດໃຊ້ການເກັບເງິນຈະໄດ້ຮັບແຖບ Billing ໃໝ່ໃນ ໂປຣໄຟລ໌ຜູ້ໃຊ້ ຂອງເຂົາເຈົ້າ.

Superusers can view the 20 most recent billing audit entries on the billing detail page. Select View all in the Audit log section to browse older entries using the pagination controls.

ໂມດູນການເກັບເງິນຍັງອະນຸຍາດໃຫ້ຜູ້ໃຊ້ສ້າງໂຄງການ ແລະ ອົງປະກອບໃໝ່ໄດ້ໂດຍບໍ່ຕ້ອງເປັນ superuser (ເບິ່ງ ການເພີ່ມໂຄງການແປ ແລະ ອົງປະກອບ). ສິ່ງນີ້ເປັນໄປໄດ້ເມື່ອເງື່ອນໄຂຕໍ່ໄປນີ້ຖືກຕອບສະໜອງ:

  • ການເກັບເງິນຢູ່ໃນຂີດຈຳກັດທີ່ຕັ້ງໄວ້ (ການໃຊ້ເກີນຈະສົ່ງຜົນໃຫ້ຖືກບລັອກການສ້າງໂຄງການ/ອົງປະກອບ) ແລະ ໄດ້ຮັບການຊຳລະແລ້ວ (ຖ້າລາຄາບໍ່ແມ່ນສູນ)

  • ຜູ້ໃຊ້ມີສິດທິອະນຸຍາດ Add projects to workspace ສຳລັບພື້ນທີ່ເຮັດວຽກທີ່ກວມເອົາໂດຍແຜນການເກັບເງິນ.

ເມື່ອສ້າງໂຄງການ, ຜູ້ໃຊ້ສາມາດເລືອກໄດ້ວ່າພື້ນທີ່ເຮັດວຽກໃດຄວນບັນຈຸໂຄງການນັ້ນ. ໂຄງການທີ່ສ້າງໃນພື້ນທີ່ເຮັດວຽກທີ່ມີການເກັບເງິນຈະຖືກນັບລວມໃນແຜນການເກັບເງິນທີ່ມອບໝາຍໃຫ້ພື້ນທີ່ເຮັດວຽກນັ້ນ. ຜູ້ໃຊ້ທີ່ມີສິດທິອະນຸຍາດ Edit workspace settings ສາມາດເບິ່ງ ແລະ ຊຳລະແຜນການເກັບເງິນໄດ້; ອີເມວແຈ້ງເຕືອນການເກັບເງິນຈະຖືກສົ່ງຫາຜູ້ໃຊ້ເຫຼົ່ານີ້. ເບິ່ງ ການຮຽກເກັບເງິນ ສຳລັບລາຍລະອຽດ.

ຮູບໂປຣໄຟລ໌

ຮູບໂປຣໄຟລ໌ຈະຖືກດາວໂຫຼດ ແລະ ແຄຊ (cache) ໄວ້ທາງຝັ່ງເຊີບເວີ ເພື່ອຫຼຸດຜ່ອນການຮົ່ວໄຫຼຂອງຂໍ້ມູນໄປຍັງເວັບໄຊທີ່ໃຫ້ບໍລິການຮູບເຫຼົ່ານັ້ນໂດຍເລີ່ມຕົ້ນ. ການຮອງຮັບໃນຕົວສຳລັບການດຶງຮູບໂປຣໄຟລ໌ຈາກທີ່ຢູ່ອີເມວທີ່ຕັ້ງຄ່າໄວ້ ສາມາດປິດໃຊ້ງານໄດ້ໂດຍໃຊ້ ENABLE_AVATARS.

ປັດຈຸບັນ Weblate ຮອງຮັບ:

Localization CDN

ສ່ວນເສີມ (Add-ons) CDN ສຳລັບການແປພາສາ JavaScript ແລະ CDN ສຳລັບໄຟລ໌ການແປ ຈະຂຽນໄຟລ໌ລົງໃນ LOCALIZE_CDN_PATH; ໂດຍທີ່ Weblate ຈະບໍ່ໄດ້ເປັນຜູ້ໃຫ້ບໍລິການໄຟລ໌ເຫຼົ່ານັ້ນ. ໃຫ້ຕັ້ງຄ່າເວັບເຊີເວີ ຫຼື CDN ທີ່ໃຫ້ບໍລິການ LOCALIZE_CDN_URL ເປັນໂຮສໄຟລ໌ static ແບບສາທາລະນະ ແລະ ອ່ານໄດ້ຢ່າງດຽວ.

ຖືວ່າທຸກໄຟລ໌ CDN ທີ່ເຜີຍແຜ່ເປັນສາທາລະນະ. UUID ສະເພາະຂອງ add-on ໃນ URL ບໍ່ແມ່ນກົນໄກການຄວບຄຸມການເຂົ້າເຖິງ. ຢ່າເປີດໃຊ້ CDN add-ons ສຳລັບອົງປະກອບທີ່ມີຂໍ້ຄວາມສ່ວນຕົວ, ຂໍ້ຄວາມຜະລິດຕະພັນທີ່ຍັງບໍ່ທັນປ່ອຍ, ຂໍ້ມູນລູກຄ້າ, URL ພາຍໃນ, API examples, repository paths, ຄຳເຫັນຂອງນັກແປ, ຫຼື ເມຕາດາຕ້າຮູບແບບໄຟລ໌ທີ່ບໍ່ຄວນຖືກເປີດເຜີຍ.

ສ່ວນເສີມ CDN ສຳລັບໄຟລ໌ການແປ ຈະເຜີຍແຜ່ໄຟລ໌ການແປແບບດິບໃນຮູບແບບທີ່ Weblate ຮອງຮັບ. ບາງຮູບແບບອາດຖືກແປຄວາມໝາຍໂດຍບຣາວເຊີ ຫຼື ໄຄເອັນອື່ນໆໃຫ້ເປັນ HTML, SVG, XML, JavaScript, YAML, ຫຼື ການຕັ້ງຄ່າສະເພາະຂອງແອັບພລິເຄຊັນ. ຄວນໃຫ້ບໍລິການ CDN ຈາກໂດເມນສະເພາະທີ່ແຍກອອກຈາກ Weblate ແລະ ແຍກຈາກແອັບພລິເຄຊັນທີ່ໃຊ້ການແປນັ້ນ. ຫ້າມແບ່ງປັນຄຸກກີ້ການຢືນຢັນຕົວຕົນກັບໂດເມນ CDN.

ການຕັ້ງຄ່າເຊີບເວີທີ່ແນະນຳ:

  • ໃຫ້ບໍລິການສະເພາະໄດເລກະທໍຣີທີ່ຕັ້ງຄ່າໂດຍ LOCALIZE_CDN_PATH; ຢ່າເປີດເຜີຍ Weblate repositories, backups, media, configuration, ຫຼື ໄດເລກະທໍຣີຂໍ້ມູນທັງໝົດ.

  • ປິດການສະແດງລາຍການໄດເລກະທໍຣີ.

  • Deny access to .kotlin-sdk-staging and all its contents. The Kotlin SDK add-on uses this directory for temporary preparation, not publication. Apply this restriction before enabling the add-on, including when a CDN copies files from the origin directory.

  • ໃຊ້ HTTPS ແລະ ເຮັດໃຫ້ CDN host ອ່ານໄດ້ຢ່າງດຽວຈາກເວັບເຊີບເວີ.

  • ສົ່ງ X-Content-Type-Options ພ້ອມກັບ nosniff.

  • ຕັ້ງຄ່າ MIME types ແບບອະນຸລັກ. ໃຫ້ບໍລິການຮູບແບບການແປທີ່ບໍ່ຮູ້ຈັກເປັນ text/plain ຫຼື application/octet-stream; ໃຫ້ບໍລິການພຽງ weblate.js ເປັນ JavaScript.

  • ສຳລັບຮູບແບບການແປດິບທີ່ບໍ່ມີເຈດຕະນາໃຫ້ສະແດງຜົນໃນບຣາວເຊີ, ພິຈາລະນາເພີ່ມ Content-Disposition ພ້ອມກັບ attachment.

  • ຕັ້ງຄ່າ Access-Control-Allow-Origin ສະເພາະສຳລັບເວັບໄຊທີ່ຕ້ອງການການເຂົ້າເຖິງໄຟລ໌ຜ່ານບຣາວເຊີ.

  • ຕັ້ງຄ່າອາຍຸການໃຊ້ງານຂອງ cache ໃຫ້ກົງກັບຄວາມຄາດຫວັງໃນການອັບເດດຂອງທ່ານ, ແລະ ລ້າງ CDN caches ເມື່ອການແປທີ່ລ້າສະໄໝຕ້ອງຫາຍໄປຢ່າງໄວວາ.

ສະນິບເປັດ nginx ຕໍ່ໄປນີ້ໃຫ້ບໍລິການສະເພາະໄດເລັກທໍຣີ CDN ທີ່ຕັ້ງຄ່າໄວ້ ແລະ ນຳໃຊ້ຄ່າເລີ່ມຕົ້ນແບບອະນຸລັກສຳລັບໄຟລ໌ແປພາສາຕົ້ນສະບັບ:

weblate/examples/weblate.nginx.cdn.conf
#
# nginx configuration for the Weblate localization CDN
#
# You will want to change:
#
# - server_name to match the host configured in LOCALIZE_CDN_URL
# - root to match LOCALIZE_CDN_PATH
# - Access-Control-Allow-Origin to the sites that need browser access
# - TLS configuration if HTTPS is not terminated before nginx
#
server {
    listen 80;
    server_name cdn.example.com;

    # LOCALIZE_CDN_PATH
    root /home/weblate/data/l10n-cdn;

    autoindex off;
    disable_symlinks on;

    location = / {
        return 404;
    }

    # Kotlin SDK preparation files must never be served.
    location ^~ /.kotlin-sdk-staging {
        return 404;
    }

    # The JavaScript localization add-on publishes this loader.
    location ~ "^/[0-9a-f]{32}/weblate\.js$" {
        try_files $uri =404;

        types {
            application/javascript js;
        }
        default_type application/javascript;

        add_header X-Content-Type-Options nosniff always;
        # add_header Access-Control-Allow-Origin "https://www.example.com" always;

        expires 1h;
    }

    # Content-addressed Android artifacts never change at the same URL.
    location ~ "^/[0-9a-f]{32}/artifacts/[0-9a-f]{64}\\.arsc$" {
        try_files $uri =404;
        types { }
        default_type application/octet-stream;
        add_header X-Content-Type-Options nosniff always;
        add_header Content-Disposition "attachment" always;
        add_header Cache-Control "public, max-age=31536000, immutable";
        # add_header Access-Control-Allow-Origin "https://www.example.com" always;
    }

    # Other CDN files are translation files. Serve them conservatively so raw
    # formats are not interpreted as active browser content.
    # Manifest JSON files also use this one-hour cache policy.
    location / {
        try_files $uri =404;

        types {
        }
        default_type text/plain;

        add_header X-Content-Type-Options nosniff always;
        add_header Content-Disposition "attachment" always;
        # add_header Access-Control-Allow-Origin "https://www.example.com" always;

        expires 1h;
    }
}

ການເຊັນ Git commits ດ້ວຍ GnuPG

ການຄອມມິດທັງໝົດສາມາດລົງນາມດ້ວຍກຸນແຈ GnuPG ຂອງອິນສະແຕນ Weblate.

  • ເປີດໃຊ້ WEBLATE_GPG_IDENTITY. (Weblate ຈະສ້າງ GnuPG key ເມື່ອຈຳເປັນ ແລະ ຈະໃຊ້ມັນເພື່ອເຊັນການຄອມມິດການແປທັງໝົດ.)

    ຄຸນສົມບັດນີ້ຕ້ອງການ GnuPG 2.1 ຫຼື ໃໝ່ກວ່າທີ່ຕິດຕັ້ງໄວ້.

    ທ່ານສາມາດພົບ key ໃນ DATA_DIR ແລະ public key ຈະສະແດງຢູ່ໃນໜ້າ "About":

    ../_images/about-gpg.webp
  • ທາງເລືອກອື່ນ ທ່ານຍັງສາມາດນຳເຂົ້າ keys ທີ່ມີຢູ່ເຂົ້າໃນ Weblate, ພຽງແຕ່ຕັ້ງ HOME=$DATA_DIR/home ເມື່ອເອີ້ນໃຊ້ gpg.

Hint

ຂໍ້ມູນຄີຈະຖືກເກັບໄວ້ໃນແຄຊ (cache) ຂອງ Weblate ເປັນເວລາດົນ. ໃນກໍລະນີທີ່ເຈົ້າໃຫ້ Weblate ສ້າງຄີດ້ວຍ WEBLATE_GPG_IDENTITY ແລ້ວຈາກນັ້ນນຳເຂົ້າຄີທີ່ມີ identity ດຽວກັນເພື່ອໃຊ້ຄີທີ່ມີຢູ່ແລ້ວ, ແນະນຳໃຫ້ລ້າງແຄຊ redis ເພື່ອໃຫ້ເຫັນຜົນຂອງການປ່ຽນແປງດັ່ງກ່າວ.

Note

ເມື່ອແບ່ງປັນ DATA_DIR ລະຫວ່າງຫຼາຍ hosts, ກະລຸນາປະຕິບັດຕາມຄຳແນະນຳທີ່ https://wiki.gnupg.org/NFS ເພື່ອເຮັດໃຫ້ການເຊັນ GnuPG ເຮັດວຽກໄດ້ຢ່າງໜ້າເຊື່ອຖື.

ການຈຳກັດອັດຕາ

Changed in version 4.6: ການຈຳກັດອັດຕາບໍ່ມີຜົນອີກຕໍ່ໄປກັບ superusers ທີ່ລົງຊື່ເຂົ້າໃຊ້ແລ້ວ.

ການດຳເນີນການຫຼາຍຢ່າງໃນ Weblate ມີການຈຳກັດອັດຕາ. ການຈຳກັດອັດຕາຈະຖືກປະເມີນຢ່າງອິດສະຫຼະສຳລັບແຕ່ລະຂອບເຂດ. ອະນຸຍາດໃຫ້ມີການພະຍາຍາມສູງສຸດ RATELIMIT_ATTEMPTS ພາຍໃນ RATELIMIT_WINDOW ວິນາທີໃນໜຶ່ງຂອບເຂດ. ຂອບເຂດນັ້ນຈະຖືກບລັອກເປັນເວລາ RATELIMIT_LOCKOUT; Weblate ບໍ່ໄດ້ປ່ຽນສິ່ງນີ້ເປັນການບລັອກ IP ຊົ່ວຄາວທັງເວັບໄຊ. ການເກີນຂີດຈຳກັດໃນໜຶ່ງຂອບເຂດ, ເຊັ່ນ TRANSLATE ຫຼື SEARCH, ຈະບໍ່ບລັອກຂອບເຂດທີ່ບໍ່ກ່ຽວຂ້ອງ ເຊັ່ນ LOGIN ຫຼື SECOND_FACTOR ດ້ວຍຕົນເອງ. ຍັງມີການຕັ້ງຄ່າສະເພາະສຳລັບຂອບເຂດ, ຕົວຢ່າງ RATELIMIT_CONTACT_ATTEMPTS ຫຼື RATELIMIT_TRANSLATE_ATTEMPTS. ຕາຕະລາງຂ້າງລຸ່ມນີ້ແມ່ນລາຍການເຕັມຂອງຂອບເຂດທີ່ມີຢູ່.

ການດຳເນີນການຕໍ່ໄປນີ້ແມ່ນຢູ່ພາຍໃຕ້ການຈຳກັດອັດຕາ:

ຊື່

ຂອບເຂດ

ຈຳນວນຄັ້ງທີ່ອະນຸຍາດໃຫ້ພະຍາຍາມ

ຊ່ວງເວລາການຈຳກັດອັດຕາ

ໄລຍະເວລາການບລັອກ

ການລົງທະບຽນ

REGISTRATION

5

300

600

ການສົ່ງຂໍ້ຄວາມຫາຜູ້ເບິ່ງແຍງລະບົບ

MESSAGE

2

300

600

ການຢັ້ງຢືນລະຫັດຜ່ານເມື່ອລົງຊື່ເຂົ້າໃຊ້

LOGIN

5

300

600

ຕັ້ງລະຫັດຜ່ານໃໝ່

PASSWORD_RESET

5

300

600

ການຢັ້ງຢືນຕົວຕົນຂັ້ນສອງ

SECOND_FACTOR

5

300

600

ການຄົ້ນຫາທັງເວັບໄຊ

SEARCH

6

60

60

ການແປ

TRANSLATE

30

60

600

ການເພີ່ມເຂົ້າໃນຄຳສັບ

GLOSSARY

30

60

600

ການເລີ່ມການແປເປັນພາສາໃໝ່

LANGUAGE

2

300

600

ການສ້າງໂຄງການໃໝ່

PROJECT

5

600

600

ການເຊື່ອມຕໍ່ບັນຊີ GitHub

GITHUB_SETUP

100

3600

600

Rendering a Markdown preview

MARKDOWN_PREVIEW

60

60

60

ພາຍໃນແຕ່ລະຂອບເຂດ, ການຈຳກັດອັດຕາຈະອີງໃສ່ເຊສຊັນ (sessions) ເມື່ອຜູ້ໃຊ້ລົງຊື່ເຂົ້າໃຊ້, ແລະ ໃສ່ IP address ຖ້າບໍ່ໄດ້ລົງຊື່ເຂົ້າໃຊ້.

Strict enforcement across concurrent workers requires a cache backend with atomic increment and decrement operations. The standard ຕັ້ງຄ່າແຄສ (cache) configuration using Valkey or Redis provides these operations.

ສຳລັບຜູ້ໃຊ້ທີ່ເຂົ້າສູ່ລະບົບແລ້ວ, Weblate ຈະບັນທຶກຄຳຮ້ອງຂໍທຳອິດທີ່ຖືກປະຕິເສດໃນລະຫວ່າງ ການລັອກເອົາຂອບເຂດທີ່ກຳລັງເຮັດວຽກໄວ້ໃນ ບັນທຶກການກວດສອບ, ເຊິ່ງລວມມີຂອບເຂດ ແລະ ເສັ້ນທາງຄຳຮ້ອງຂໍ. ການຖືກປະຕິເສດຊ້ຳໆໃນລະຫວ່າງການລັອກຄັ້ງດຽວກັນ ຈະບໍ່ມີການສ້າງບັນທຶກ audit-log ເພີ່ມເຕີມ.

ຖ້າຜູ້ໃຊ້ລົງຊື່ເຂົ້າໃຊ້ລົ້ມເຫຼວ AUTH_LOCK_ATTEMPTS ຄັ້ງ, ການຢັ້ງຢືນດ້ວຍລະຫັດຜ່ານຈະຖືກປິດໃຊ້ງານໃນບັນຊີນັ້ນ ຈົນກວ່າຈະຜ່ານຂະບວນການຣີເຊັດລະຫັດຜ່ານ.

ການຕັ້ງຄ່າສາມາດຖືກນຳໃຊ້ໃນ Docker container ໂດຍການເພີ່ມ prefix WEBLATE_ ໃສ່ຊື່ການຕັ້ງຄ່າ, ຕົວຢ່າງ RATELIMIT_ATTEMPTS ຈະກາຍເປັນ WEBLATE_RATELIMIT_ATTEMPTS.

API ມີການຕັ້ງຄ່າການຈຳກັດອັດຕາແຍກຕ່າງຫາກ, ເບິ່ງ ການຈຳກັດອັດຕາ API.