A simple language manager for Python projects.
Project description
Lang Custom v1.1.4
Lang Custom is a Python library for managing translations from JSON files, powered by SQLite for fast queries and low memory usage. Perfect for bots or multilingual apps needing high performance and easy maintenance.
🆕 What's New in v1.1.4?
- ✅ Default Parameters: Set default
language,group, andtypeto simplify calls togetandbatch:await lang_custom.default(language="en", group="reply", type="text") text = await lang_custom.get(name="greeting") # Uses defaults
- ✅ Batch Retrieval: Fetch multiple values at once with a single query:
result = await lang_custom.batch(language="en", group="error", type="text", names=["not_found", "invalid", "missing"]) print(result) # {'not_found': 'Resource not found', 'invalid': 'Invalid input', 'missing': ''}
- ✅ Auto-initialization: Database and JSON files are loaded on
import lang_custom. No need forlanguage_setup(). - ✅ Support for full reload or single-language reload from JSON.
- ✅ Smart warnings: Suggests corrections for invalid
group,name, ortype(e.g., "Did you mean 'replies'?"). - ✅ Unified API: Replaced old
lang(),group(),get_text(),random_text()with a single function:await lang_custom.get(language="en", group="error", type="text", name="not_found")
📦 Installation
pip install lang_custom==1.1.4
🚀 Usage Guide
1. Import the library
import lang_custom
Database is automatically initialized, ready to use 🎉
2. Set default parameters (optional)
Simplify queries by setting defaults for language, group, and type:
await lang_custom.default(language="en", group="reply", type="text")
3. Query language data
# Using defaults
text = await lang_custom.get(name="greeting") # Uses language="en", group="reply", type="text"
print(text) # hello :D
# Override defaults
random_text = await lang_custom.get(type="random", name="greetings")
print(random_text) # hello :D, hi :3, or hey there!
# Full parameters
error_text = await lang_custom.get(language="en", group="error", type="text", name="not_found")
print(error_text) # Resource not found
type="text": Returns a fixed string.type="random": Returns a random item from a list.
4. Batch query multiple values
Fetch multiple values in one call:
result = await lang_custom.batch(names=["greeting", "welcome", "missing"]) # Uses defaults
print(result) # {'greeting': 'hello :D', 'welcome': 'hi :3', 'missing': ''}
# With full parameters
result = await lang_custom.batch(language="en", group="error", type="text", names=["not_found", "invalid"])
print(result) # {'not_found': 'Resource not found', 'invalid': 'Invalid input'}
5. List available languages
langs = await lang_custom.get_lang()
print(langs) # ['en', 'vi', 'jp']
6. Reload language data
await lang_custom.reload() # Reload all from JSON
await lang_custom.reload_language("en") # Reload only "en"
📁 Example _data_language/en.json
{
"reply": {
"text": {
"greeting": "hello :D",
"welcome": "hi :3"
},
"random": {
"greetings": ["hello :D", "hi :3", "hey there!"]
}
},
"error": {
"text": {
"not_found": "Resource not found",
"invalid": "Invalid input"
},
"random": {
"errors": ["Oops, something went wrong!", "Uh-oh, try again!"]
}
}
}
⚠️ Notes
- Do not delete the
_data_language/folder orDO_NOT_DELETE.dbfile while the app is running. - To update translations, edit JSON files and call
reload()orreload_language().
💬 Feedback & Issues
Join our Discord: 👉 https://discord.gg/pGcSyr2bcY
Thank you for using Lang Custom! 🚀
Lang Custom v1.1.4
Lang Custom là thư viện Python quản lý bản dịch từ tệp JSON, dùng SQLite để truy vấn nhanh và tiết kiệm bộ nhớ. Lý tưởng cho bot hoặc ứng dụng đa ngôn ngữ cần hiệu suất cao và dễ bảo trì.
🆕 Có gì mới trong v1.1.4?
- ✅ Thiết lập mặc định: Đặt
language,group, vàtypemặc định để đơn giản hóagetvàbatch:await lang_custom.default(language="en", group="reply", type="text") text = await lang_custom.get(name="greeting") # Dùng giá trị mặc định
- ✅ Lấy hàng loạt: Lấy nhiều giá trị cùng lúc trong một truy vấn:
result = await lang_custom.batch(language="en", group="error", type="text", names=["not_found", "invalid", "missing"]) print(result) # {'not_found': 'Resource not found', 'invalid': 'Invalid input', 'missing': ''}
- ✅ Tự động khởi tạo: Database và JSON được load ngay khi
import lang_custom. Không cần gọilanguage_setup(). - ✅ Hỗ trợ reload toàn bộ hoặc reload một ngôn ngữ từ JSON.
- ✅ Cảnh báo thông minh: Gợi ý khi
group,name, hoặctypesai (ví dụ: "Did you mean 'replies'?"). - ✅ Gộp hàm cũ (
lang(),group(),get_text(),random_text()) thành một hàm duy nhất:await lang_custom.get(language="en", group="error", type="text", name="not_found")
📦 Cài đặt
pip install lang_custom==1.1.4
🚀 Hướng dẫn sử dụng
1. Nhập thư viện
import lang_custom
Database tự động khởi tạo, sẵn sàng sử dụng 🎉
2. Thiết lập tham số mặc định (tùy chọn)
Đơn giản hóa truy vấn bằng cách đặt mặc định cho language, group, và type:
await lang_custom.default(language="en", group="reply", type="text")
3. Truy vấn dữ liệu ngôn ngữ
# Sử dụng mặc định
text = await lang_custom.get(name="greeting") # Dùng language="en", group="reply", type="text"
print(text) # hello :D
# Ghi đè mặc định
random_text = await lang_custom.get(type="random", name="greetings")
print(random_text) # hello :D, hi :3, hoặc hey there!
# Đầy đủ tham số
error_text = await lang_custom.get(language="en", group="error", type="text", name="not_found")
print(error_text) # Resource not found
type="text": Lấy chuỗi cố định.type="random": Lấy ngẫu nhiên từ danh sách.
4. Truy vấn hàng loạt
Lấy nhiều giá trị trong một lần gọi:
result = await lang_custom.batch(names=["greeting", "welcome", "missing"]) # Dùng mặc định
print(result) # {'greeting': 'hello :D', 'welcome': 'hi :3', 'missing': ''}
# Với đầy đủ tham số
result = await lang_custom.batch(language="en", group="error", type="text", names=["not_found", "invalid"])
print(result) # {'not_found': 'Resource not found', 'invalid': 'Invalid input'}
5. Lấy danh sách ngôn ngữ
langs = await lang_custom.get_lang()
print(langs) # ['en', 'vi', 'jp']
6. Tải lại dữ liệu ngôn ngữ
await lang_custom.reload() # Tải lại toàn bộ từ JSON
await lang_custom.reload_language("en") # Tải lại ngôn ngữ "en"
📁 Ví dụ file _data_language/en.json
{
"reply": {
"text": {
"greeting": "hello :D",
"welcome": "hi :3"
},
"random": {
"greetings": ["hello :D", "hi :3", "hey there!"]
}
},
"error": {
"text": {
"not_found": "Resource not found",
"invalid": "Invalid input"
},
"random": {
"errors": ["Oops, something went wrong!", "Uh-oh, try again!"]
}
}
}
⚠️ Lưu ý
- Không xóa thư mục
_data_language/hoặc fileDO_NOT_DELETE.dbkhi ứng dụng đang chạy. - Cập nhật bản dịch? Chỉnh file JSON và gọi
reload()hoặcreload_language().
💬 Góp ý & Báo lỗi
Tham gia Discord: 👉 https://discord.gg/pGcSyr2bcY
Cảm ơn bạn đã sử dụng Lang Custom! 🚀
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lang_custom-1.1.4.tar.gz.
File metadata
- Download URL: lang_custom-1.1.4.tar.gz
- Upload date:
- Size: 11.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d087da9fe66af48d14cfed2cd2a3c779ae428b968cdc58bf51698de1651f986
|
|
| MD5 |
120b126b29c0864f131c34bc68ea7304
|
|
| BLAKE2b-256 |
bb63d787c0727758fa4fa68b2e70ba3c206b68a8a57cc3e5f4ab5d1b24ed25df
|
File details
Details for the file lang_custom-1.1.4-py3-none-any.whl.
File metadata
- Download URL: lang_custom-1.1.4-py3-none-any.whl
- Upload date:
- Size: 9.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ba48269c908c5885fcd0ca83e5055434c9404a28505bfb1c55573752e68bead
|
|
| MD5 |
ef3a8ff1ddd61f090372117d2e1cc7be
|
|
| BLAKE2b-256 |
3dc6330a80fe2860e5c3eceb79e7fd8f0dee52787d5212f05fb47b0804f73656
|