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.
- ✅ 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")
pip install lang_custom==1.1.6import lang_customDatabase is automatically initialized, ready to use 🎉
Simplify queries by setting defaults for language, group, and type:
await lang_custom.default(language="en", group="reply", type="text")# 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 foundtype="text": Returns a fixed string.type="random": Returns a random item from a list.
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'}langs = await lang_custom.get_lang()
print(langs) # ['en', 'vi', 'jp']await lang_custom.reload() # Reload all from JSON
await lang_custom.reload_language("en") # Reload only "en"{
"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!"]
}
}
}- 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().
Join our Discord: 👉 https://discord.gg/pGcSyr2bcY
Thank you for using Lang Custom! 🚀

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ì.
- ✅ 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")
pip install lang_custom==1.1.6import lang_customDatabase tự động khởi tạo, sẵn sàng sử dụng 🎉
Đơ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")# 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 foundtype="text": Lấy chuỗi cố định.type="random": Lấy ngẫu nhiên từ danh sách.
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'}langs = await lang_custom.get_lang()
print(langs) # ['en', 'vi', 'jp']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"{
"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!"]
}
}
}- 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().
Tham gia Discord: 👉 https://discord.gg/pGcSyr2bcY