[fix] multi-lingual print formats
This commit is contained in:
parent
d0c2e57e1f
commit
b698124ae8
15 changed files with 57 additions and 29 deletions
|
|
@ -1,11 +1,10 @@
|
|||
frappe.ui.form.on("System Settings", "refresh", function(frm) {
|
||||
frappe.setup_language_field(frm);
|
||||
frappe.call({
|
||||
method: "frappe.core.doctype.system_settings.system_settings.load",
|
||||
callback: function(data) {
|
||||
frappe.all_timezones = data.message.timezones;
|
||||
frappe.languages = data.message.languages;
|
||||
frm.set_df_property("time_zone", "options", frappe.all_timezones);
|
||||
frm.set_df_property("language", "options", frappe.languages);
|
||||
|
||||
$.each(data.message.defaults, function(key, val) {
|
||||
frm.set_value(key, val);
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import frappe
|
|||
from frappe import _
|
||||
from frappe.model.document import Document
|
||||
from frappe.model import no_value_fields
|
||||
from frappe.translate import get_lang_dict, set_default_language
|
||||
from frappe.translate import set_default_language
|
||||
from frappe.utils import cint
|
||||
from frappe.utils.momentjs import get_all_timezones
|
||||
|
||||
|
|
@ -38,11 +38,7 @@ def load():
|
|||
if df.fieldtype in ("Select", "Data"):
|
||||
defaults[df.fieldname] = all_defaults.get(df.fieldname)
|
||||
|
||||
languages = get_lang_dict().keys()
|
||||
languages.sort()
|
||||
|
||||
return {
|
||||
"timezones": get_all_timezones(),
|
||||
"languages": [""] + languages,
|
||||
"defaults": defaults
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
"allow_on_submit": 0,
|
||||
"bold": 0,
|
||||
"collapsible": 0,
|
||||
"default": "english",
|
||||
"default": "",
|
||||
"fieldname": "language",
|
||||
"fieldtype": "Select",
|
||||
"hidden": 0,
|
||||
|
|
@ -24,7 +24,7 @@
|
|||
"label": "Language",
|
||||
"length": 0,
|
||||
"no_copy": 0,
|
||||
"options": "english",
|
||||
"options": "",
|
||||
"permlevel": 0,
|
||||
"precision": "",
|
||||
"print_hide": 0,
|
||||
|
|
@ -195,7 +195,7 @@
|
|||
"issingle": 0,
|
||||
"istable": 0,
|
||||
"max_attachments": 0,
|
||||
"modified": "2016-03-02 03:51:08.447550",
|
||||
"modified": "2016-03-02 05:13:29.290875",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Core",
|
||||
"name": "Translation",
|
||||
|
|
|
|||
|
|
@ -9,3 +9,6 @@ from frappe.model.document import Document
|
|||
class Translation(Document):
|
||||
def on_update(self):
|
||||
frappe.cache().hdel('lang_user_translations', self.language_code)
|
||||
|
||||
def on_trash(self):
|
||||
frappe.cache().hdel('lang_user_translations', self.language_code)
|
||||
|
|
|
|||
|
|
@ -37,7 +37,9 @@ frappe.ui.form.on('User', {
|
|||
refresh: function(frm) {
|
||||
var doc = frm.doc;
|
||||
|
||||
if(doc.name===user && !doc.__unsaved && frappe.languages && (doc.language || frappe.boot.user.language)
|
||||
if(doc.name===user && !doc.__unsaved
|
||||
&& frappe.all_timezones
|
||||
&& (doc.language || frappe.boot.user.language)
|
||||
&& doc.language !== frappe.boot.user.language) {
|
||||
msgprint(__("Refreshing..."));
|
||||
window.location.reload();
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ frappe.wiz = {
|
|||
add_slide: function(slide) {
|
||||
frappe.wiz.slides.push(slide);
|
||||
},
|
||||
|
||||
|
||||
run_event: function(event) {
|
||||
$.each(frappe.wiz.events[event] || [], function(i, fn) {
|
||||
fn(frappe.wiz.wizard);
|
||||
|
|
@ -34,7 +34,7 @@ frappe.pages['setup-wizard'].on_page_load = function(wrapper) {
|
|||
});
|
||||
|
||||
frappe.wiz.run_event("before_load");
|
||||
|
||||
|
||||
var wizard_settings = {
|
||||
page_name: "setup-wizard",
|
||||
parent: wrapper,
|
||||
|
|
@ -302,7 +302,7 @@ function load_frappe_slides() {
|
|||
// reset all slides so that labels are translated
|
||||
frappe.wiz.slides = [];
|
||||
frappe.wiz.run_event("before_load");
|
||||
|
||||
|
||||
// remove slides listed in remove_app_slides
|
||||
for (var app in frappe.wiz.remove_app_slides) {
|
||||
var new_slides = []
|
||||
|
|
@ -313,7 +313,7 @@ function load_frappe_slides() {
|
|||
}
|
||||
frappe.wiz.slides = new_slides;
|
||||
}
|
||||
|
||||
|
||||
frappe.wiz.wizard.slides = frappe.wiz.slides;
|
||||
frappe.wiz.run_event("after_load");
|
||||
|
||||
|
|
@ -421,8 +421,8 @@ function load_frappe_slides() {
|
|||
});
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
frappe.wiz.user= {
|
||||
app_name: "frappe",
|
||||
title: __("The First User: You"),
|
||||
|
|
|
|||
|
|
@ -79,3 +79,10 @@ Add the template in `erpnext/templates/generators/job_opening.html`
|
|||
|
||||
{% endblock %}{% endraw %}
|
||||
|
||||
#### 5. Customizing List View
|
||||
|
||||
If you add a method `get_list_view` in the controller file (job_opening.py), you can set properties for the listview
|
||||
|
||||
def get_list_context(context):
|
||||
context.title = _("Jobs")
|
||||
context.introduction = _('Current Job Openings')
|
||||
|
|
|
|||
|
|
@ -3,3 +3,4 @@ ordering
|
|||
contents
|
||||
context
|
||||
building
|
||||
generators
|
||||
|
|
|
|||
|
|
@ -115,3 +115,4 @@ frappe.patches.v6_15.set_username
|
|||
execute:frappe.permissions.reset_perms("Error Snapshot")
|
||||
frappe.patches.v6_16.feed_doc_owner
|
||||
frappe.patches.v6_21.print_settings_repeat_header_footer
|
||||
frappe.patches.v6_24.set_language_as_code
|
||||
|
|
|
|||
0
frappe/patches/v6_24/__init__.py
Normal file
0
frappe/patches/v6_24/__init__.py
Normal file
17
frappe/patches/v6_24/set_language_as_code.py
Normal file
17
frappe/patches/v6_24/set_language_as_code.py
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
import frappe
|
||||
|
||||
from frappe.translate import get_lang_dict
|
||||
|
||||
# migrate language from name to code
|
||||
def execute():
|
||||
language = frappe.db.get_value('System Settings', None, 'language')
|
||||
if language:
|
||||
system_settings = frappe.get_doc('System Settings', 'System Settings')
|
||||
if get_lang_dict().get(language, language) != system_settings.language:
|
||||
system_settings.language = get_lang_dict().get(language, language)
|
||||
system_settings.save()
|
||||
|
||||
for user in frappe.get_all('User', fields=['name', 'language']):
|
||||
if user.language:
|
||||
frappe.db.set_value('User', user.name, 'language',
|
||||
get_lang_dict().get(user.language, user.language), update_modified=False)
|
||||
|
|
@ -103,7 +103,7 @@ frappe.ui.form.PrintPreview = Class.extend({
|
|||
this.lang_code = this.frm.doc.language;
|
||||
// Load all languages in the field
|
||||
this.language_sel.empty()
|
||||
.add_options(frappe.get_languages_dict())
|
||||
.add_options(frappe.get_languages())
|
||||
.val(this.lang_code);
|
||||
this.preview();
|
||||
},
|
||||
|
|
|
|||
|
|
@ -16,17 +16,19 @@ frappe._ = function(txt, replace) {
|
|||
};
|
||||
window.__ = frappe._
|
||||
|
||||
frappe.get_languages_dict = function() {
|
||||
var lang_dict = []
|
||||
$.each(frappe.boot.lang_dict, function(lang, val){
|
||||
lang_dict.push({'label': lang, 'value': val})
|
||||
})
|
||||
return lang_dict
|
||||
frappe.get_languages = function() {
|
||||
if(!frappe.languages) {
|
||||
frappe.languages = []
|
||||
$.each(frappe.boot.lang_dict, function(lang, value){
|
||||
frappe.languages.push({'label': lang, 'value': value})
|
||||
});
|
||||
frappe.languages = frappe.languages.sort(function(a, b) { return (a.value < b.value) ? -1 : 1 });
|
||||
}
|
||||
return frappe.languages;
|
||||
};
|
||||
|
||||
frappe.setup_language_field = function(frm, fieldname) {
|
||||
if (!fieldname) fieldname = 'language';
|
||||
if(!frappe.languages) frappe.languages = frappe.get_languages_dict();
|
||||
frm.set_df_property(fieldname, "options", [''].concat(frappe.languages) || ["", "english"]);
|
||||
frm.set_df_property(fieldname, "options", [''].concat(frappe.get_languages()) || ["", "english"]);
|
||||
frm.get_field(fieldname).set_input(frm.doc[fieldname] || '');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -234,7 +234,7 @@ frappe.views.CommunicationComposer = Class.extend({
|
|||
// Load all languages in the select field language_sel
|
||||
$(fields.language_sel.input)
|
||||
.empty()
|
||||
.add_options(frappe.get_languages_dict())
|
||||
.add_options(frappe.get_languages())
|
||||
.val(doc.language)
|
||||
},
|
||||
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ def get_user_lang(user=None):
|
|||
# if defined in user profile
|
||||
user_lang = frappe.db.get_value("User", user, "language")
|
||||
if user_lang and user_lang!="Loading...":
|
||||
lang = get_lang_dict().get(user_lang) or frappe.local.lang
|
||||
lang = get_lang_dict().get(user_lang, user_lang) or frappe.local.lang
|
||||
else:
|
||||
default_lang = frappe.db.get_default("lang")
|
||||
lang = default_lang or frappe.local.lang
|
||||
|
|
@ -65,7 +65,7 @@ def get_user_lang(user=None):
|
|||
|
||||
def set_default_language(language):
|
||||
"""Set Global default language"""
|
||||
lang = get_lang_dict()[language]
|
||||
lang = get_lang_dict().get(language, language)
|
||||
frappe.db.set_default("lang", lang)
|
||||
frappe.local.lang = lang
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue