updated language and separated slickgrid files
This commit is contained in:
parent
9d1e65d8d8
commit
9181d4cab1
31 changed files with 89 additions and 82 deletions
|
|
@ -18,11 +18,11 @@
|
|||
"Email",
|
||||
"Created Support Ticket",
|
||||
"File List",
|
||||
"No Action",
|
||||
"Keep a track of all communications",
|
||||
"User",
|
||||
"Visit",
|
||||
"Date",
|
||||
"Keep a track of all communications",
|
||||
"No Action",
|
||||
"Job Applicant",
|
||||
"Opportunity",
|
||||
"By",
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
[
|
||||
"mm-dd-yyyy",
|
||||
"Enter Email Id to receive Error Report sent by users.E.g.: support@iwebnotes.com",
|
||||
"Banner HTML",
|
||||
"Title",
|
||||
"Time Zone",
|
||||
|
|
@ -12,17 +11,18 @@
|
|||
"mm/dd/yyyy",
|
||||
"Password Expires in (days)",
|
||||
"Date Format",
|
||||
"System Defaults",
|
||||
"Enter Email Id to receive Error Report sent by users.\nE.g.: support@iwebnotes.com",
|
||||
"Default Home Pages",
|
||||
"dd-mm-yyyy",
|
||||
"Banner",
|
||||
"Company Name",
|
||||
"Currency Format",
|
||||
"Format: hh:mm example for one hour expiry set as 01:00. Max expiry will be 72 hours. Default is 24 hours",
|
||||
"System Defaults",
|
||||
"Country",
|
||||
"Industry",
|
||||
"Total SMS Sent",
|
||||
"Defaults",
|
||||
"Format: hh:mm example for one hour expiry set as 01:00. \nMax expiry will be 72 hours. Default is 24 hours",
|
||||
"yyyy-mm-dd",
|
||||
"Home Page",
|
||||
"Support Email Id",
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
[
|
||||
"Perm Level",
|
||||
"For Links, enter the DocType as range\nFor Select, enter list of Options separated by comma",
|
||||
"Section Break",
|
||||
"Label",
|
||||
"Width",
|
||||
|
|
@ -18,15 +19,14 @@
|
|||
"Password",
|
||||
"Data",
|
||||
"HTML",
|
||||
"This field will appear only if the fieldname defined here has value OR the rules are true (examples): <br>myfieldeval:doc.myfield=='My Value'<br>eval:doc.age>18",
|
||||
"Default",
|
||||
"Button",
|
||||
"Column Break",
|
||||
"Report Hide",
|
||||
"This field will appear only if the fieldname defined here has value OR the rules are true (examples): <br>\nmyfield\neval:doc.myfield=='My Value'<br>\neval:doc.age>18",
|
||||
"In List View",
|
||||
"Time",
|
||||
"Read Only",
|
||||
"For Links, enter the DocType as rangeFor Select, enter list of Options separated by comma",
|
||||
"Options",
|
||||
"Description",
|
||||
"Code",
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[
|
||||
"Core",
|
||||
"Home Page",
|
||||
"Default Home Page",
|
||||
"Role"
|
||||
"Role",
|
||||
"Default Home Page"
|
||||
]
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
[
|
||||
"Index",
|
||||
"Perm Level",
|
||||
"No Copy",
|
||||
"For Links, enter the DocType as range\nFor Select, enter list of Options separated by comma",
|
||||
"Section Break",
|
||||
"Percent",
|
||||
"Label",
|
||||
"Text Editor",
|
||||
"Report Hide",
|
||||
"No Copy",
|
||||
"Hidden",
|
||||
"Type",
|
||||
"Print Width",
|
||||
|
|
@ -28,8 +28,8 @@
|
|||
"Allow on Submit",
|
||||
"DocField",
|
||||
"Time",
|
||||
"Report Hide",
|
||||
"Read Only",
|
||||
"For Links, enter the DocType as rangeFor Select, enter list of Options separated by comma",
|
||||
"Options",
|
||||
"Description",
|
||||
"Code",
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@
|
|||
"Submit",
|
||||
"Write",
|
||||
"Amend",
|
||||
"Role",
|
||||
"DocPerm",
|
||||
"Cancel",
|
||||
"Role",
|
||||
"Match"
|
||||
]
|
||||
|
|
@ -1,13 +1,12 @@
|
|||
[
|
||||
"Title Case",
|
||||
"Permission Rules",
|
||||
"<a onclick=\"msgprint('<ol>\\<li><b>field:[fieldname]</b> - By Field\\<li><b>naming_series:</b> - By Naming Series (field called naming_series must be present\\<li><b>eval:[expression]</b> - Evaluate an expression in python (self is doc)\\<li><b>Prompt</b> - Prompt user for a name\\<li><b>[series]</b> - Series by prefix (separated by a dot); for example PRE.#####\\</ol>')\">Naming Options</a>",
|
||||
"System",
|
||||
"Permission Rules",
|
||||
"Other",
|
||||
"Master",
|
||||
"Hide Toolbar",
|
||||
"<a onclick=\"msgprint('<ol>\\\n<li><b>field:[fieldname]</b> - By Field\\\n<li><b>naming_series:</b> - By Naming Series (field called naming_series must be present\\\n<li><b>eval:[expression]</b> - Evaluate an expression in python (self is doc)\\\n<li><b>Prompt</b> - Prompt user for a name\\\n<li><b>[series]</b> - Series by prefix (separated by a dot); for example PRE.#####\\\n</ol>')\">Naming Options</a>",
|
||||
"Hide Copy",
|
||||
"DocType Details",
|
||||
"User Cannot Search",
|
||||
"Core",
|
||||
"Max Attachments",
|
||||
"Description",
|
||||
|
|
@ -42,9 +41,10 @@
|
|||
"Is Single",
|
||||
"Hide Print",
|
||||
"Allow Import via Data Import Tool",
|
||||
"User Cannot Search",
|
||||
"Master",
|
||||
"Naming",
|
||||
"Permissions",
|
||||
"Document Type",
|
||||
"Allow Attach"
|
||||
"Allow Attach",
|
||||
"Hide Toolbar"
|
||||
]
|
||||
|
|
@ -10,10 +10,10 @@
|
|||
"Event Individuals",
|
||||
"Participants",
|
||||
"Individuals",
|
||||
"Ref Name",
|
||||
"Details",
|
||||
"Groups",
|
||||
"Cancel",
|
||||
"Ref Name",
|
||||
"Event Type",
|
||||
"Starts on",
|
||||
"Event",
|
||||
|
|
|
|||
|
|
@ -1,16 +1,11 @@
|
|||
[
|
||||
"Core",
|
||||
"Match Id",
|
||||
"<=",
|
||||
">=",
|
||||
"Map",
|
||||
"<",
|
||||
"No",
|
||||
"Field Mapper Detail",
|
||||
"To Field",
|
||||
"Yes",
|
||||
"=",
|
||||
"Checking Operator (To Fld, Operator, From Fld)",
|
||||
"From Field",
|
||||
">"
|
||||
"From Field"
|
||||
]
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
[
|
||||
"Core",
|
||||
"File URL",
|
||||
"File Name",
|
||||
"Module",
|
||||
"File URL",
|
||||
"File Data"
|
||||
]
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
[
|
||||
"List of patches executed",
|
||||
"Core",
|
||||
"Patch",
|
||||
"List of patches executed",
|
||||
"Patch Log"
|
||||
]
|
||||
|
|
@ -1,9 +1,8 @@
|
|||
[
|
||||
"File List",
|
||||
"Check / Uncheck roles assigned to the Profile. Click on the Role to find out what permissions that Role has.",
|
||||
"Hrvatski",
|
||||
"Email Password",
|
||||
"User Image",
|
||||
"\u0441\u0440\u043f\u0441\u043a\u0438",
|
||||
"Email Signature",
|
||||
"Sunny",
|
||||
"Set a new password and \"Save\"",
|
||||
|
|
@ -24,10 +23,12 @@
|
|||
"Roles Assigned",
|
||||
"Profile",
|
||||
"Core",
|
||||
"Enter default value fields (keys) and values. If you add multiple values for a field, the first one will be picked. These defaults are also used to set \"match\" permission rules. To see list of fields, go to <a href=\"#Form/Customize Form/Customize Form\">Customize Form</a>.",
|
||||
"Last IP",
|
||||
"fran\u00e7ais",
|
||||
"Display Settings",
|
||||
"Email Host",
|
||||
"Email Login",
|
||||
"espa\u00f1ol",
|
||||
"Set New Password",
|
||||
"Sync Inbox",
|
||||
|
|
@ -43,22 +44,20 @@
|
|||
"Id of the profile will be the email.",
|
||||
"Profile Defaults",
|
||||
"Language",
|
||||
"Check / Uncheck roles assigned to the Profile. Click on the Role to find out what permissions that Role has.",
|
||||
"Bio",
|
||||
"Language preference for user interface (only if available).",
|
||||
"Gender",
|
||||
"Enabled",
|
||||
"Ocean",
|
||||
"\u0939\u093f\u0902\u0926\u0940",
|
||||
"User Type",
|
||||
"nederlands",
|
||||
"\u0ba4\u0bae\u0bbf\u0bb4\u0bcd",
|
||||
"Defaults",
|
||||
"Middle Name (Optional)",
|
||||
"Enter default value fields (keys) and values. If you add multiple values for a field, the first one will be picked. These defaults are also used to set \"match\" permission rules. To see list of fields, go to <a href=\"#Form/Customize Form/Customize Form\">Customize Form</a>.",
|
||||
"Short Bio",
|
||||
"Male",
|
||||
"Email Login",
|
||||
"Bio will be displayed in blog section etc.",
|
||||
"File List",
|
||||
"Send Invite Email",
|
||||
"\u0627\u0644\u0639\u0631\u0628\u064a\u0629",
|
||||
"Login Before",
|
||||
"Last Name",
|
||||
"POP3 Mail Server (e.g. pop.gmail.com)",
|
||||
|
|
|
|||
|
|
@ -1,11 +1,16 @@
|
|||
[
|
||||
"Script Report",
|
||||
"Core",
|
||||
"Ref DocType",
|
||||
"Is Standard",
|
||||
"Report Name",
|
||||
"No",
|
||||
"Disabled",
|
||||
"Report Type",
|
||||
"JSON",
|
||||
"Report",
|
||||
"Report Builder",
|
||||
"Query Report",
|
||||
"Query",
|
||||
"Report",
|
||||
"Is Standard",
|
||||
"Yes"
|
||||
]
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
[
|
||||
"Role Name",
|
||||
"Core",
|
||||
"Role",
|
||||
"Module"
|
||||
"Module",
|
||||
"Role"
|
||||
]
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
[
|
||||
"Scheduler Log",
|
||||
"Core",
|
||||
"Scheduler Log",
|
||||
"Error",
|
||||
"Log of Scheduler Errors",
|
||||
"Method",
|
||||
"Error"
|
||||
"Method"
|
||||
]
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
[
|
||||
"Custom Query",
|
||||
"No",
|
||||
"Search Criteria",
|
||||
"Sort By",
|
||||
"Doc Type",
|
||||
"Columns",
|
||||
|
|
@ -18,12 +19,11 @@
|
|||
"Parent Doc Type",
|
||||
"Additional Conditions",
|
||||
"Client Script",
|
||||
"Additional Columns",
|
||||
"Module",
|
||||
"Disabled",
|
||||
"Criteria Name",
|
||||
"Report Script",
|
||||
"Search Criteria",
|
||||
"Additional Columns",
|
||||
"Filters",
|
||||
"Yes"
|
||||
]
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
[
|
||||
"Core",
|
||||
"Execute",
|
||||
"Error",
|
||||
"System Console",
|
||||
"Script"
|
||||
"Script",
|
||||
"Error"
|
||||
]
|
||||
|
|
@ -5,8 +5,8 @@
|
|||
"Description",
|
||||
"Assigned By",
|
||||
"Priority",
|
||||
"Role",
|
||||
"Date",
|
||||
"Role",
|
||||
"Reference Type",
|
||||
"ToDo"
|
||||
]
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
[
|
||||
"Core",
|
||||
"Role",
|
||||
"UserRole"
|
||||
"UserRole",
|
||||
"Role"
|
||||
]
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
[
|
||||
"Core",
|
||||
"Workflow Document States",
|
||||
"Workflow Name",
|
||||
"Workflow Document States",
|
||||
"Core",
|
||||
"Rules defining transition of state in the workflow.",
|
||||
"DocType on which this Workflow is applicable.",
|
||||
"Different \"States\" this document can exist in. Like \"Open\", \"Pending Approval\" etc.",
|
||||
|
|
|
|||
|
|
@ -3,10 +3,7 @@
|
|||
"Update Value",
|
||||
"State",
|
||||
"Only Allow Edit For",
|
||||
"1",
|
||||
"0",
|
||||
"Represents the states allowed in one document and role assigned to change the state.",
|
||||
"2",
|
||||
"Update Field",
|
||||
"Doc Status",
|
||||
"Message",
|
||||
|
|
|
|||
|
|
@ -28,11 +28,11 @@
|
|||
"To restrict a User of a particular Role to documents that are only self-created.",
|
||||
"Add New Permission Rule",
|
||||
"Restricting By User",
|
||||
"Go to Setup > <a href='#user-properties'>User Properties</a> to set \\\t\t\t'territory' for diffent Users.",
|
||||
"Quick Help for Setting Permissions",
|
||||
"Add A New Rule",
|
||||
"Select Role",
|
||||
"Permissions translate to Users based on what Role they are assigned",
|
||||
"Go to Setup > <a href='#user-properties'>User Properties</a> to set \\\n\t\t\t'territory' for diffent Users.",
|
||||
"Permission Manager",
|
||||
"Select Document Type",
|
||||
"Click on button in the 'Condition' column and select the option 'User is the creator of the document'",
|
||||
|
|
|
|||
|
|
@ -58,7 +58,6 @@
|
|||
"lib/public/js/lib/jquery/jquery.ui.interactions.min.js",
|
||||
"lib/public/js/lib/mousetrap.min.js",
|
||||
"lib/public/js/lib/center_image.js",
|
||||
"lib/public/js/legacy/utils/printElement.js",
|
||||
"lib/public/js/lib/bootstrap.min.js",
|
||||
|
||||
"lib/public/js/lib/tiny_mce_3.5.7/jquery.tinymce.js:concat",
|
||||
|
|
@ -161,9 +160,10 @@
|
|||
"lib/public/js/wn/form/states.js",
|
||||
"lib/public/js/wn/form/assign_to.js",
|
||||
"lib/public/js/wn/print/print_table.js",
|
||||
|
||||
'lib/public/js/lib/jquery/jquery.ui.interactions.min.js',
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"public/js/slickgrid.min.js": [
|
||||
'lib/public/js/lib/slickgrid/jquery.event.drag.min.js',
|
||||
'lib/public/js/lib/slickgrid/plugins/slick.cellrangeselector.js',
|
||||
'lib/public/js/lib/slickgrid/plugins/slick.cellselectionmodel.js',
|
||||
|
|
@ -175,6 +175,6 @@
|
|||
'lib/public/js/lib/slickgrid/slick.grid.js',
|
||||
'lib/public/js/lib/slickgrid/slick.dataview.js',
|
||||
]
|
||||
},
|
||||
}
|
||||
]
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
"Workflow will start after saving.",
|
||||
"No records tagged.",
|
||||
"Download Backup",
|
||||
"Report Saved",
|
||||
"Then By (optional)",
|
||||
"No Communication tagged with this ",
|
||||
"Send Email",
|
||||
"Start Report For",
|
||||
|
|
@ -25,14 +25,11 @@
|
|||
"Notify By Email",
|
||||
"Not Found",
|
||||
"Disabled",
|
||||
"Based on",
|
||||
"Modified by",
|
||||
"Select Print Format",
|
||||
"Subject",
|
||||
"File Uploaded Sucessfully.",
|
||||
"Custom Reports",
|
||||
"Documents",
|
||||
"Not allowed",
|
||||
"Current status",
|
||||
"Shortcut",
|
||||
"Priority",
|
||||
|
|
@ -53,7 +50,6 @@
|
|||
"Report",
|
||||
"Drag to sort columns",
|
||||
"Showing only for",
|
||||
"Then By (optional)",
|
||||
"Send",
|
||||
"Delete",
|
||||
"Comment",
|
||||
|
|
@ -63,7 +59,6 @@
|
|||
"None: End of Workflow",
|
||||
"Upload a file",
|
||||
"Dear",
|
||||
"Query",
|
||||
"Message",
|
||||
"or",
|
||||
"Select Attachments",
|
||||
|
|
@ -77,11 +72,13 @@
|
|||
"Not Permitted",
|
||||
"is not allowed.",
|
||||
"This is PERMANENT action and you cannot undo. Continue?",
|
||||
"No Report Loaded. Please use query-report/[Report Name] to run a report.",
|
||||
"Report was not saved (there were errors)",
|
||||
"Select or drag across dates to create a new event.",
|
||||
"Add to To Do",
|
||||
"Tags",
|
||||
"Logout",
|
||||
"To add a tag, open the document and click on \"Add Tag\" on the sidebar",
|
||||
"Recent",
|
||||
"Search",
|
||||
"In response to",
|
||||
|
|
@ -100,12 +97,9 @@
|
|||
"Next actions",
|
||||
"Select All",
|
||||
"Test Runner",
|
||||
"Click on edit button to start a new report.",
|
||||
"and",
|
||||
"For Links, use define linked",
|
||||
"From Date must be before To Date",
|
||||
"Sort By",
|
||||
"Permissions will be based on this DocType",
|
||||
"Attach",
|
||||
"Note: Other permission rules may also apply",
|
||||
"Complete By",
|
||||
|
|
@ -118,11 +112,9 @@
|
|||
"Descending",
|
||||
"Your download is being built, this may take a few moments...",
|
||||
"Document is only editable by users of role",
|
||||
"Please click on another report from the menu.",
|
||||
"To add a tag, open the document and click on \"Add Tag\" on the sidebar",
|
||||
"Modified by",
|
||||
"About",
|
||||
"Are you sure you want to delete the attachment?",
|
||||
"Report Name",
|
||||
"Edit",
|
||||
"Enabled",
|
||||
"List",
|
||||
|
|
|
|||
|
|
@ -92,6 +92,8 @@ $.extend(wn.report_dump, {
|
|||
wn.provide("wn.views");
|
||||
wn.views.GridReport = Class.extend({
|
||||
init: function(opts) {
|
||||
wn.require("js/slickgrid.min.js");
|
||||
|
||||
this.filter_inputs = {};
|
||||
this.preset_checks = [];
|
||||
this.tree_grid = {show: false};
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@ wn.provide("wn.views");
|
|||
wn.standard_pages["query-report"] = function() {
|
||||
var wrapper = wn.container.add_page('query-report');
|
||||
|
||||
wn.require("js/slickgrid.min.js");
|
||||
|
||||
wn.ui.make_app_page({
|
||||
parent: wrapper,
|
||||
title: 'Query Report',
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ wn.views.ReportViewPage = Class.extend({
|
|||
wn.set_route("403");
|
||||
return;
|
||||
};
|
||||
|
||||
wn.require("js/slickgrid.min.js");
|
||||
|
||||
this.doctype = doctype;
|
||||
this.docname = docname;
|
||||
|
|
|
|||
|
|
@ -92,14 +92,18 @@ class HTTPRequest:
|
|||
else:
|
||||
lang = [lang]
|
||||
|
||||
|
||||
for l in lang:
|
||||
code = l.strip()
|
||||
if "-" in code:
|
||||
code = code.split("-")[0]
|
||||
if code in lang_list:
|
||||
webnotes.lang = code
|
||||
return
|
||||
|
||||
# check if parent language (pt) is setup, if variant (pt-BR)
|
||||
if "-" in code:
|
||||
code = code.split("-")[0]
|
||||
if code in lang_list:
|
||||
webnotes.lang = code
|
||||
return
|
||||
|
||||
def setup_profile(self):
|
||||
webnotes.user = webnotes.profile.Profile()
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
"BOM",
|
||||
"Branch",
|
||||
"Department",
|
||||
"Territory",
|
||||
"SMS Parameter",
|
||||
"Project Control",
|
||||
"Item Tax",
|
||||
"Bin",
|
||||
|
|
@ -101,6 +101,7 @@
|
|||
"UOM",
|
||||
"Supplier Type",
|
||||
"Serial No",
|
||||
"Territory",
|
||||
"Landed Cost Purchase Receipt",
|
||||
"Salary Structure Deduction",
|
||||
"Home Control",
|
||||
|
|
@ -185,8 +186,9 @@
|
|||
"Payment to Invoice Matching Tool Detail",
|
||||
"Contact Us Settings",
|
||||
"Expense Claim Detail",
|
||||
"Communication Log",
|
||||
"Stock Ledger Entry",
|
||||
"Communication Log",
|
||||
"Must have report permission to access this report.",
|
||||
"Bank Reconciliation",
|
||||
"Salary Slip",
|
||||
"Delivery Note Packing Item",
|
||||
|
|
@ -264,9 +266,10 @@
|
|||
"Salary Structure Earning",
|
||||
"DocType",
|
||||
"Holiday Block List Allow",
|
||||
"SMS Parameter",
|
||||
"Query must be a SELECT",
|
||||
"Maintenance Schedule",
|
||||
"Not allowed for: ",
|
||||
"Must specify a Query to run",
|
||||
"Event User",
|
||||
"Stock Reconciliation",
|
||||
"Purchase Receipt",
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ import webnotes, conf
|
|||
import os
|
||||
import codecs
|
||||
import json
|
||||
import re
|
||||
|
||||
messages = {}
|
||||
|
||||
|
|
@ -178,10 +179,13 @@ def write_messages_file(path, messages, mtype):
|
|||
os.makedirs(os.path.join(path, 'locale'))
|
||||
|
||||
fname = os.path.join(path, 'locale', '_messages_' + mtype + '.json')
|
||||
messages = [m.replace("\n", "") for m in filter(None, messages)]
|
||||
messages = list(set(messages))
|
||||
filtered = []
|
||||
for m in messages:
|
||||
if m and re.search('[a-zA-Z]+', m):
|
||||
filtered.append(m)
|
||||
with open(fname, 'w') as msgfile:
|
||||
msgfile.write(json.dumps(messages, indent=1))
|
||||
msgfile.write(json.dumps(filtered, indent=1))
|
||||
|
||||
def export_messages(lang, outfile):
|
||||
"""get list of all messages"""
|
||||
|
|
@ -212,6 +216,7 @@ def export_messages(lang, outfile):
|
|||
keys = messages.keys()
|
||||
keys.sort()
|
||||
for m in keys:
|
||||
|
||||
w.writerow([m.encode('utf-8'), messages.get(m, '').encode('utf-8')])
|
||||
|
||||
def import_messages(lang, infile):
|
||||
|
|
@ -301,6 +306,7 @@ def google_translate(lang, infile, outfile):
|
|||
"""translate objects using Google API. Add you own API key for translation"""
|
||||
|
||||
data = get_all_messages_from_file(infile)
|
||||
|
||||
import requests
|
||||
|
||||
with open(outfile, 'w') as msgfile:
|
||||
|
|
|
|||
2
wnf.py
2
wnf.py
|
|
@ -251,7 +251,7 @@ def setup_options():
|
|||
|
||||
parser.add_option('--import_messages', nargs=2, metavar="LANG FILENAME",
|
||||
help="""Import messages for a language and make language files.
|
||||
Example, lib/wnf.py --export_messages hi hindi.csv""")
|
||||
Example, lib/wnf.py --import_messages hi hindi.csv""")
|
||||
|
||||
parser.add_option('--google_translate', nargs=3, metavar="LANG INFILE OUTFILE",
|
||||
help="""Auto translate using Google Translate API""")
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue