Merge pull request #9636 from surajshetty3416/contextual-translation
This commit is contained in:
commit
741dc2c47e
98 changed files with 253300 additions and 254924 deletions
|
|
@ -48,7 +48,7 @@ class _dict(dict):
|
|||
def copy(self):
|
||||
return _dict(dict(self).copy())
|
||||
|
||||
def _(msg, lang=None):
|
||||
def _(msg, lang=None, context=None):
|
||||
"""Returns translated string in current lang, if exists."""
|
||||
from frappe.translate import get_full_dict
|
||||
from frappe.utils import strip_html_tags, is_html
|
||||
|
|
@ -59,7 +59,7 @@ def _(msg, lang=None):
|
|||
if not lang:
|
||||
lang = local.lang
|
||||
|
||||
non_translated_msg = msg
|
||||
non_translated_string = msg
|
||||
|
||||
if is_html(msg):
|
||||
msg = strip_html_tags(msg)
|
||||
|
|
@ -67,8 +67,16 @@ def _(msg, lang=None):
|
|||
# msg should always be unicode
|
||||
msg = as_unicode(msg).strip()
|
||||
|
||||
translated_string = ''
|
||||
if context:
|
||||
string_key = '{msg}:{context}'.format(msg=msg, context=context)
|
||||
translated_string = get_full_dict(lang).get(string_key)
|
||||
|
||||
if not translated_string:
|
||||
translated_string = get_full_dict(lang).get(msg)
|
||||
|
||||
# return lang_full_dict according to lang passed parameter
|
||||
return get_full_dict(lang).get(msg) or non_translated_msg
|
||||
return translated_string or non_translated_string
|
||||
|
||||
def as_unicode(text, encoding='utf-8'):
|
||||
'''Convert to unicode if required'''
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ def get_translation_data():
|
|||
def create_translation(key, val):
|
||||
translation = frappe.new_doc('Translation')
|
||||
translation.language = key
|
||||
translation.source_name = val[0]
|
||||
translation.target_name = val[1]
|
||||
translation.source_text = val[0]
|
||||
translation.translated_text = val[1]
|
||||
translation.save()
|
||||
return translation
|
||||
|
|
|
|||
|
|
@ -3,19 +3,7 @@
|
|||
|
||||
|
||||
frappe.ui.form.on('Translation', {
|
||||
refresh: function(frm) {
|
||||
if(frm.is_new() || !(["Saved", "Deleted"].includes(frm.doc.status))) return;
|
||||
frm.add_custom_button('Contribute', function() {
|
||||
frappe.call({
|
||||
method: 'frappe.core.doctype.translation.translation.contribute_translation',
|
||||
args: {
|
||||
"language": frm.doc.language,
|
||||
"contributor": frm.doc.owner,
|
||||
"source_name": frm.doc.source_name,
|
||||
"target_name": frm.doc.target_name,
|
||||
"doc_name": frm.doc.name
|
||||
}
|
||||
});
|
||||
}).addClass('btn-primary');
|
||||
refresh: function() {
|
||||
//
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
{
|
||||
"_comments": "[]",
|
||||
"_liked_by": "[]",
|
||||
"actions": [],
|
||||
"allow_import": 1,
|
||||
"autoname": "hash",
|
||||
"creation": "2016-02-17 12:21:16.175465",
|
||||
|
|
@ -6,20 +9,21 @@
|
|||
"document_type": "Setup",
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"contributed",
|
||||
"language",
|
||||
"section_break_4",
|
||||
"source_name",
|
||||
"source_text",
|
||||
"context",
|
||||
"column_break_6",
|
||||
"target_name",
|
||||
"translated_text",
|
||||
"section_break_6",
|
||||
"status",
|
||||
"contributed_translation_doctype_name"
|
||||
"contribution_status",
|
||||
"contribution_docname"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"fieldname": "language",
|
||||
"fieldtype": "Link",
|
||||
"in_standard_filter": 1,
|
||||
"label": "Language",
|
||||
"options": "Language",
|
||||
"search_index": 1
|
||||
|
|
@ -28,44 +32,58 @@
|
|||
"fieldname": "section_break_4",
|
||||
"fieldtype": "Section Break"
|
||||
},
|
||||
{
|
||||
"description": "If your data is in HTML, please copy paste the exact HTML code with the tags.",
|
||||
"fieldname": "source_name",
|
||||
"fieldtype": "Code",
|
||||
"label": "Source Text"
|
||||
},
|
||||
{
|
||||
"fieldname": "column_break_6",
|
||||
"fieldtype": "Column Break"
|
||||
},
|
||||
{
|
||||
"fieldname": "target_name",
|
||||
"fieldtype": "Code",
|
||||
"in_list_view": 1,
|
||||
"label": "Translated Text"
|
||||
},
|
||||
{
|
||||
"fieldname": "section_break_6",
|
||||
"fieldtype": "Section Break"
|
||||
},
|
||||
{
|
||||
"default": "Saved",
|
||||
"depends_on": "eval: !doc.__islocal",
|
||||
"fieldname": "status",
|
||||
"fieldtype": "Select",
|
||||
"label": "Status",
|
||||
"options": "Saved\nContributed\nVerified\nPR sent\nDeleted",
|
||||
"fieldname": "context",
|
||||
"fieldtype": "Data",
|
||||
"label": "Context",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "contributed_translation_doctype_name",
|
||||
"default": "0",
|
||||
"fieldname": "contributed",
|
||||
"fieldtype": "Check",
|
||||
"hidden": 1,
|
||||
"label": "Contributed",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"depends_on": "doc.contributed",
|
||||
"fieldname": "contribution_status",
|
||||
"fieldtype": "Select",
|
||||
"label": "Contribution Status",
|
||||
"options": "\nPending\nVerified\nRejected",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "contribution_docname",
|
||||
"fieldtype": "Data",
|
||||
"hidden": 1,
|
||||
"label": "Contributed Translation Doctype Name",
|
||||
"label": "Contribution Document Name",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"description": "If your data is in HTML, please copy paste the exact HTML code with the tags.",
|
||||
"fieldname": "source_text",
|
||||
"fieldtype": "Code",
|
||||
"label": "Source Text"
|
||||
},
|
||||
{
|
||||
"fieldname": "translated_text",
|
||||
"fieldtype": "Code",
|
||||
"in_list_view": 1,
|
||||
"label": "Translated Text"
|
||||
}
|
||||
],
|
||||
"modified": "2019-06-18 19:03:38.640990",
|
||||
"links": [],
|
||||
"modified": "2020-03-12 13:28:48.223409",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Core",
|
||||
"name": "Translation",
|
||||
|
|
@ -86,6 +104,6 @@
|
|||
],
|
||||
"sort_field": "modified",
|
||||
"sort_order": "DESC",
|
||||
"title_field": "source_name",
|
||||
"title_field": "source_text",
|
||||
"track_changes": 1
|
||||
}
|
||||
|
|
@ -5,57 +5,77 @@
|
|||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
from frappe.model.document import Document
|
||||
from frappe.translate import clear_cache
|
||||
from frappe.utils import strip_html_tags, is_html
|
||||
from frappe.integrations.utils import make_post_request
|
||||
from frappe.translate import get_translator_url
|
||||
import json
|
||||
|
||||
class Translation(Document):
|
||||
def validate(self):
|
||||
if is_html(self.source_name):
|
||||
if is_html(self.source_text):
|
||||
self.remove_html_from_source()
|
||||
|
||||
def remove_html_from_source(self):
|
||||
self.source_name = strip_html_tags(self.source_name).strip()
|
||||
self.source_text = strip_html_tags(self.source_text).strip()
|
||||
|
||||
def on_update(self):
|
||||
clear_cache()
|
||||
clear_user_translation_cache(self.language)
|
||||
|
||||
def on_trash(self):
|
||||
clear_cache()
|
||||
clear_user_translation_cache(self.language)
|
||||
|
||||
def onload(self):
|
||||
if self.contributed_translation_doctype_name:
|
||||
data = {"data": json.dumps({
|
||||
"doc_name": self.contributed_translation_doctype_name
|
||||
})}
|
||||
try:
|
||||
response = make_post_request(url=frappe.get_hooks("translation_contribution_status")[0], data=data)
|
||||
except Exception:
|
||||
frappe.msgprint("Something went wrong. Please check error log for more details")
|
||||
if response.get("message").get("message") == "Contributed Translation has been deleted":
|
||||
self.status = "Deleted"
|
||||
self.contributed_translation_doctype_name = ""
|
||||
self.save()
|
||||
else:
|
||||
self.status = response.get("message").get("status")
|
||||
self.save()
|
||||
def contribute(self):
|
||||
pass
|
||||
|
||||
def get_contribution_status(self):
|
||||
pass
|
||||
|
||||
@frappe.whitelist()
|
||||
def contribute_translation(language, contributor, source_name, target_name, doc_name):
|
||||
data = {"data": json.dumps({
|
||||
"language": language,
|
||||
"contributor": contributor,
|
||||
"source_name": source_name,
|
||||
"target_name": target_name,
|
||||
"posting_date": frappe.utils.nowdate()
|
||||
})}
|
||||
try:
|
||||
response = make_post_request(url=frappe.get_hooks("translation_contribution_url")[0], data=data)
|
||||
except Exception:
|
||||
frappe.msgprint("Something went wrong while contributing translation. Please check error log for more details")
|
||||
if response.get("message").get("message") == "Already exists":
|
||||
frappe.msgprint("Translation already exists")
|
||||
elif response.get("message").get("message") == "Added to contribution list":
|
||||
frappe.set_value("Translation", doc_name, "contributed_translation_doctype_name", response.get("message").get("doc_name"))
|
||||
frappe.msgprint("Translation successfully contributed")
|
||||
def create_translations(translation_map, language):
|
||||
from frappe.frappeclient import FrappeClient
|
||||
|
||||
translation_map = json.loads(translation_map)
|
||||
translation_map_to_send = frappe._dict({})
|
||||
# first create / update local user translations
|
||||
for source_id, translation_dict in translation_map.items():
|
||||
translation_dict = frappe._dict(translation_dict)
|
||||
existing_doc_name = frappe.db.get_all('Translation', {
|
||||
'source_text': translation_dict.source_text,
|
||||
'context': translation_dict.context or '',
|
||||
'language': language,
|
||||
})
|
||||
translation_map_to_send[source_id] = translation_dict
|
||||
if existing_doc_name:
|
||||
frappe.db.set_value('Translation', existing_doc_name[0].name, {
|
||||
'translated_text': translation_dict.translated_text,
|
||||
'contributed': 1,
|
||||
'contribution_status': 'Pending'
|
||||
})
|
||||
translation_map_to_send[source_id].name = existing_doc_name[0].name
|
||||
else:
|
||||
doc = frappe.get_doc({
|
||||
'doctype': 'Translation',
|
||||
'source_text': translation_dict.source_text,
|
||||
'contributed': 1,
|
||||
'contribution_status': 'Pending',
|
||||
'translated_text': translation_dict.translated_text,
|
||||
'context': translation_dict.context,
|
||||
'language': language
|
||||
})
|
||||
doc.insert()
|
||||
translation_map_to_send[source_id].name = doc.name
|
||||
|
||||
params = {
|
||||
'language': language,
|
||||
'contributor_email': frappe.session.user,
|
||||
'contributor_name': frappe.utils.get_fullname(frappe.session.user),
|
||||
'translation_map': json.dumps(translation_map_to_send)
|
||||
}
|
||||
|
||||
translator = FrappeClient(get_translator_url())
|
||||
added_translations = translator.post_api('translator.api.add_translations', params=params)
|
||||
|
||||
for local_docname, remote_docname in added_translations.items():
|
||||
frappe.db.set_value('Translation', local_docname, 'contribution_docname', remote_docname)
|
||||
|
||||
def clear_user_translation_cache(lang):
|
||||
frappe.cache().hdel('lang_user_translations', lang)
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@ class CustomizeForm(Document):
|
|||
|
||||
# load custom translation
|
||||
translation = self.get_name_translation()
|
||||
self.label = translation.target_name if translation else ''
|
||||
self.label = translation.translated_text if translation else ''
|
||||
|
||||
#If allow_auto_repeat is set, add auto_repeat custom field.
|
||||
if self.allow_auto_repeat:
|
||||
|
|
@ -131,16 +131,17 @@ class CustomizeForm(Document):
|
|||
|
||||
def get_name_translation(self):
|
||||
'''Get translation object if exists of current doctype name in the default language'''
|
||||
return frappe.get_value('Translation',
|
||||
{'source_name': self.doc_type, 'language': frappe.local.lang or 'en'},
|
||||
['name', 'target_name'], as_dict=True)
|
||||
return frappe.get_value('Translation', {
|
||||
'source_text': self.doc_type,
|
||||
'language': frappe.local.lang or 'en'
|
||||
}, ['name', 'translated_text'], as_dict=True)
|
||||
|
||||
def set_name_translation(self):
|
||||
'''Create, update custom translation for this doctype'''
|
||||
current = self.get_name_translation()
|
||||
if current:
|
||||
if self.label and current.target_name != self.label:
|
||||
frappe.db.set_value('Translation', current.name, 'target_name', self.label)
|
||||
if self.label and current.translated_text != self.label:
|
||||
frappe.db.set_value('Translation', current.name, 'translated_text', self.label)
|
||||
frappe.translate.clear_cache()
|
||||
else:
|
||||
# clear translation
|
||||
|
|
@ -149,8 +150,8 @@ class CustomizeForm(Document):
|
|||
else:
|
||||
if self.label:
|
||||
frappe.get_doc(dict(doctype='Translation',
|
||||
source_name=self.doc_type,
|
||||
target_name=self.label,
|
||||
source_text=self.doc_type,
|
||||
translated_text=self.label,
|
||||
language_code=frappe.local.lang or 'en')).insert()
|
||||
|
||||
def clear_existing_doc(self):
|
||||
|
|
|
|||
|
|
@ -41,6 +41,11 @@ class Leaderboard {
|
|||
return field;
|
||||
});
|
||||
}
|
||||
|
||||
// For translation. Do not remove this
|
||||
// __("This Week"), __("This Month"), __("This Quarter"), __("This Year"),
|
||||
// __("Last Week"), __("Last Month"), __("Last Quarter"), __("Last Year"),
|
||||
// __("All Time"), __("Select From Date")
|
||||
this.timespans = [
|
||||
"This Week", "This Month", "This Quarter", "This Year",
|
||||
"Last Week", "Last Month", "Last Quarter", "Last Year",
|
||||
|
|
@ -107,7 +112,7 @@ class Leaderboard {
|
|||
this.timespans.map(d => {
|
||||
return {"label": __(d), value: d };
|
||||
})
|
||||
);
|
||||
);
|
||||
this.create_from_date_field();
|
||||
|
||||
this.type_select = this.page.add_select(__("Field"),
|
||||
|
|
|
|||
0
frappe/desk/page/translation_tool/__init__.py
Normal file
0
frappe/desk/page/translation_tool/__init__.py
Normal file
35
frappe/desk/page/translation_tool/translation_tool.css
Normal file
35
frappe/desk/page/translation_tool/translation_tool.css
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
.translation-item {
|
||||
font-size: 12px;
|
||||
padding: 12px 15px;
|
||||
min-height: 40px;
|
||||
cursor: pointer;
|
||||
overflow: hidden;
|
||||
}
|
||||
.translation-item:hover {
|
||||
background-color: #fafbfc;
|
||||
}
|
||||
.translation-item.active {
|
||||
background-color: #fffce7;
|
||||
}
|
||||
|
||||
.translation-edit-section {
|
||||
height: 100%;
|
||||
overflow-y: scroll;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.translation-tool {
|
||||
border: 0px 1px 1px 1px solid #d1d8dd;
|
||||
width: 100%;
|
||||
height: 72vh;
|
||||
}
|
||||
|
||||
.left-side {
|
||||
padding: 0px;
|
||||
height: 100%;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
.contributed-translation {
|
||||
padding: 0.5rem 0;
|
||||
}
|
||||
20
frappe/desk/page/translation_tool/translation_tool.html
Normal file
20
frappe/desk/page/translation_tool/translation_tool.html
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
<div class="translation-tool">
|
||||
<div class="col-sm-5 border-right left-side">
|
||||
<div class="level list-row list-row-head text-muted small">
|
||||
<div class="list-row-col ellipsis list-subject level">
|
||||
<span class="level-item">{%= __("Contributed Translations") %}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="translation-item-tr"></div>
|
||||
<div class="level list-row list-row-head text-muted small border-top">
|
||||
<div class="list-row-col ellipsis list-subject level">
|
||||
<span class="level-item">{%= __("Source Text") %}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="translation-item-container"></div>
|
||||
</div>
|
||||
<div class="translation-edit-section col-sm-7">
|
||||
<div class="translation-edit-form"></div>
|
||||
<div class="other-contributions padding"></div>
|
||||
</div>
|
||||
</div>
|
||||
461
frappe/desk/page/translation_tool/translation_tool.js
Normal file
461
frappe/desk/page/translation_tool/translation_tool.js
Normal file
|
|
@ -0,0 +1,461 @@
|
|||
frappe.pages['translation-tool'].on_page_load = function(wrapper) {
|
||||
var page = frappe.ui.make_app_page({
|
||||
parent: wrapper,
|
||||
title: 'Translation Tool',
|
||||
single_column: true
|
||||
});
|
||||
|
||||
frappe.translation_tool = new TranslationTool(page);
|
||||
};
|
||||
|
||||
class TranslationTool {
|
||||
constructor(page) {
|
||||
this.page = page;
|
||||
this.wrapper = $(page.body);
|
||||
this.wrapper.append(frappe.render_template('translation_tool'));
|
||||
frappe.utils.bind_actions_with_object(this.wrapper, this);
|
||||
this.active_translation = null;
|
||||
this.edited_translations = {};
|
||||
this.setup_search_box();
|
||||
this.setup_language_filter();
|
||||
this.page.set_primary_action(
|
||||
__('Contribute Translations'),
|
||||
this.show_confirmation_dialog.bind(this)
|
||||
);
|
||||
this.page.set_secondary_action(
|
||||
__('Refresh'),
|
||||
this.fetch_messages_then_render.bind(this)
|
||||
);
|
||||
this.update_header();
|
||||
}
|
||||
|
||||
setup_language_filter() {
|
||||
let languages = Object.keys(frappe.boot.lang_dict).map(language_label => {
|
||||
let value = frappe.boot.lang_dict[language_label];
|
||||
return {
|
||||
label: `${language_label} (${value})`,
|
||||
value: value
|
||||
};
|
||||
});
|
||||
|
||||
let language_selector = this.page.add_field({
|
||||
fieldname: 'language',
|
||||
fieldtype: 'Select',
|
||||
options: languages,
|
||||
change: () => {
|
||||
let language = language_selector.get_value();
|
||||
localStorage.setItem('translation_language', language);
|
||||
this.language = language;
|
||||
this.fetch_messages_then_render();
|
||||
}
|
||||
});
|
||||
let translation_language = localStorage.getItem('translation_language');
|
||||
if (translation_language || frappe.boot.lang !== 'en') {
|
||||
language_selector.set_value(translation_language || frappe.boot.lang);
|
||||
} else {
|
||||
frappe.prompt(
|
||||
{
|
||||
label: __('Please select target language for translation'),
|
||||
fieldname: 'language',
|
||||
fieldtype: 'Select',
|
||||
options: languages,
|
||||
reqd: 1
|
||||
},
|
||||
values => {
|
||||
language_selector.set_value(values.language);
|
||||
},
|
||||
__('Select Language')
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
setup_search_box() {
|
||||
let search_box = this.page.add_field({
|
||||
fieldname: 'search',
|
||||
fieldtype: 'Data',
|
||||
label: __('Search Source Text'),
|
||||
change: () => {
|
||||
this.search_text = search_box.get_value();
|
||||
this.fetch_messages_then_render();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
fetch_messages_then_render() {
|
||||
this.fetch_messages().then(messages => {
|
||||
this.messages = messages;
|
||||
this.render_messages(messages);
|
||||
});
|
||||
this.setup_local_contributions();
|
||||
}
|
||||
|
||||
fetch_messages() {
|
||||
frappe.dom.freeze(__('Fetching...'));
|
||||
return frappe
|
||||
.xcall('frappe.translate.get_messages', {
|
||||
language: this.language,
|
||||
search_text: this.search_text
|
||||
})
|
||||
.then(messages => {
|
||||
return messages;
|
||||
})
|
||||
.finally(() => {
|
||||
frappe.dom.unfreeze();
|
||||
});
|
||||
}
|
||||
|
||||
render_messages(messages) {
|
||||
let template = message => `
|
||||
<div
|
||||
class="translation-item"
|
||||
data-message-id="${encodeURIComponent(message.id)}"
|
||||
data-action="on_translation_click">
|
||||
<div class="bold ellipsis">
|
||||
<span class="indicator ${this.get_indicator_color(message)}">
|
||||
<span>${frappe.utils.escape_html(message.source_text)}</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
|
||||
let html = messages.map(template).join('');
|
||||
this.wrapper.find('.translation-item-container').html(html);
|
||||
}
|
||||
|
||||
on_translation_click(e, $el) {
|
||||
let message_id = decodeURIComponent($el.data('message-id'));
|
||||
this.wrapper.find('.translation-item').removeClass('active');
|
||||
$el.addClass('active');
|
||||
this.active_translation = this.messages.find(m => m.id === message_id);
|
||||
this.edit_translation(this.active_translation);
|
||||
}
|
||||
|
||||
edit_translation(translation) {
|
||||
if (this.form) {
|
||||
this.form.set_values({});
|
||||
}
|
||||
this.get_additional_info(translation.id).then(data => {
|
||||
this.make_edit_form(translation, data);
|
||||
});
|
||||
}
|
||||
|
||||
get_additional_info(source_id) {
|
||||
frappe.dom.freeze('Fetching...');
|
||||
return frappe.xcall('frappe.translate.get_source_additional_info', {
|
||||
source: source_id,
|
||||
language: this.page.fields_dict['language'].get_value()
|
||||
}).finally(frappe.dom.unfreeze);
|
||||
}
|
||||
|
||||
make_edit_form(translation, { contributions, positions }) {
|
||||
if (!this.form) {
|
||||
this.form = new frappe.ui.FieldGroup({
|
||||
fields: [
|
||||
{
|
||||
fieldtype: 'HTML',
|
||||
fieldname: 'header',
|
||||
read_only: 1
|
||||
},
|
||||
{
|
||||
fieldtype: 'Data',
|
||||
fieldname: 'id',
|
||||
hidden: 1
|
||||
},
|
||||
{
|
||||
label: 'Source Text',
|
||||
fieldtype: 'Code',
|
||||
fieldname: 'source_text',
|
||||
read_only: 1,
|
||||
enable_copy_button: 1
|
||||
},
|
||||
{
|
||||
label: 'Context',
|
||||
fieldtype: 'Code',
|
||||
fieldname: 'context',
|
||||
read_only: 1
|
||||
},
|
||||
{
|
||||
label: 'DocType',
|
||||
fieldtype: 'Data',
|
||||
fieldname: 'doctype',
|
||||
read_only: 1
|
||||
},
|
||||
{
|
||||
label: 'Translated Text',
|
||||
fieldtype: 'Small Text',
|
||||
fieldname: 'translated_text',
|
||||
},
|
||||
{
|
||||
label: 'Suggest',
|
||||
fieldtype: 'Button',
|
||||
click: () => {
|
||||
let { id, translated_text, source_text } = this.form.get_values();
|
||||
let existing_value = this.form.translation_dict.translated_text;
|
||||
if (
|
||||
is_null(translated_text) ||
|
||||
existing_value === translated_text
|
||||
) {
|
||||
delete this.edited_translations[id];
|
||||
} else if (existing_value !== translated_text) {
|
||||
this.edited_translations[id] = {
|
||||
id,
|
||||
translated_text,
|
||||
source_text
|
||||
};
|
||||
}
|
||||
this.update_header();
|
||||
}
|
||||
},
|
||||
{
|
||||
fieldtype: 'Section Break',
|
||||
fieldname: 'contributed_translations_section',
|
||||
label: 'Contributed Translations'
|
||||
},
|
||||
{
|
||||
fieldtype: 'HTML',
|
||||
fieldname: 'contributed_translations'
|
||||
},
|
||||
{
|
||||
fieldtype: 'Section Break',
|
||||
collapsible: 1,
|
||||
label: 'Occurences in source code'
|
||||
},
|
||||
{
|
||||
fieldtype: 'HTML',
|
||||
fieldname: 'positions'
|
||||
},
|
||||
],
|
||||
body: this.wrapper.find('.translation-edit-form')
|
||||
});
|
||||
|
||||
this.form.make();
|
||||
this.setup_header();
|
||||
}
|
||||
|
||||
this.form.set_values(translation);
|
||||
this.form.translation_dict = translation;
|
||||
this.form.set_df_property('doctype', 'hidden', !translation.doctype);
|
||||
this.form.set_df_property('context', 'hidden', !translation.context);
|
||||
this.set_status(translation);
|
||||
|
||||
this.setup_contributions(contributions);
|
||||
this.setup_positions(positions);
|
||||
}
|
||||
|
||||
setup_header() {
|
||||
this.form.get_field('header').$wrapper.html(`<div>
|
||||
<span class="translation-status"></span>
|
||||
</div>`);
|
||||
}
|
||||
|
||||
set_status(translation) {
|
||||
this.form.get_field('header').$wrapper.find('.translation-status').html(`
|
||||
<span class="indicator ${this.get_indicator_color(translation)} text-muted">
|
||||
${this.get_indicator_status_text(translation)}
|
||||
</span>
|
||||
`);
|
||||
}
|
||||
|
||||
setup_positions(positions) {
|
||||
let position_dom = '';
|
||||
if (positions && positions.length) {
|
||||
position_dom = positions.map(position => {
|
||||
if (position.path.startsWith('DocType: ')) {
|
||||
return `<div>
|
||||
<span class="text-muted">${position.path}</span>
|
||||
</div>`;
|
||||
} else {
|
||||
return `<div>
|
||||
<a
|
||||
class="text-muted"
|
||||
target="_blank"
|
||||
href="${this.get_code_url(position.path, position.line_no, position.app)}">
|
||||
${position.path}
|
||||
</a>
|
||||
</div>`;
|
||||
}
|
||||
}).join('');
|
||||
}
|
||||
this.form.get_field('positions').$wrapper.html(position_dom);
|
||||
}
|
||||
|
||||
setup_contributions(contributions) {
|
||||
const contributions_exists = contributions && contributions.length;
|
||||
if (contributions_exists) {
|
||||
let contributions_html = contributions.map(c => {
|
||||
return `
|
||||
<div class="contributed-translation flex justify-between align-center">
|
||||
<div class="ellipsis">${c.translated}</div>
|
||||
<div class="text-muted small">
|
||||
${comment_when(c.creation)}
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
});
|
||||
this.form.get_field('contributed_translations').html(contributions_html);
|
||||
}
|
||||
this.form.set_df_property('contributed_translations_section', 'hidden', !contributions_exists);
|
||||
}
|
||||
show_confirmation_dialog() {
|
||||
this.confirmation_dialog = new frappe.ui.Dialog({
|
||||
fields: [
|
||||
{
|
||||
label: __('Language'),
|
||||
fieldname: 'language',
|
||||
fieldtype: 'Data',
|
||||
read_only: 1,
|
||||
bold: 1,
|
||||
default: this.language
|
||||
},
|
||||
{
|
||||
fieldtype: 'HTML',
|
||||
fieldname: 'edited_translations'
|
||||
}
|
||||
],
|
||||
title: __('Confirm Translations'),
|
||||
no_submit_on_enter: true,
|
||||
primary_action_label: __('Submit'),
|
||||
primary_action: values => {
|
||||
this.create_translations(values).then(this.confirmation_dialog.hide());
|
||||
}
|
||||
});
|
||||
this.confirmation_dialog.get_field('edited_translations').html(`
|
||||
<table class="table table-bordered">
|
||||
<tr>
|
||||
<th>${__('Source Text')}</th>
|
||||
<th>${__('Translated Text')}</th>
|
||||
</tr>
|
||||
${Object.values(this.edited_translations).map(t => `
|
||||
<tr>
|
||||
<td>${t.source_text}</td>
|
||||
<td>${t.translated_text}</td>
|
||||
</tr>
|
||||
`).join('')}
|
||||
</table>
|
||||
`);
|
||||
this.confirmation_dialog.show();
|
||||
}
|
||||
create_translations() {
|
||||
frappe.dom.freeze(__('Submitting...'));
|
||||
return frappe
|
||||
.xcall(
|
||||
'frappe.core.doctype.translation.translation.create_translations',
|
||||
{
|
||||
translation_map: this.edited_translations,
|
||||
language: this.language
|
||||
}
|
||||
)
|
||||
.then(() => {
|
||||
frappe.dom.unfreeze();
|
||||
frappe.show_alert(__('Successfully Submitted!'));
|
||||
this.edited_translations = {};
|
||||
this.update_header();
|
||||
this.fetch_messages_then_render();
|
||||
})
|
||||
.finally(() => frappe.dom.unfreeze());
|
||||
}
|
||||
|
||||
setup_local_contributions() {
|
||||
// TODO: Refactor
|
||||
frappe
|
||||
.xcall('frappe.translate.get_contributions', {
|
||||
language: this.language
|
||||
})
|
||||
.then(messages => {
|
||||
let template = message => `
|
||||
<div
|
||||
class="translation-item"
|
||||
data-message-id="${encodeURIComponent(message.name)}"
|
||||
data-action="show_translation_status_modal">
|
||||
<div class="bold ellipsis">
|
||||
<span class="indicator ${this.get_contribution_indicator_color(message)}">
|
||||
<span>${frappe.utils.escape_html(message.source_text)}</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
|
||||
let html = messages.map(template).join('');
|
||||
this.wrapper.find('.translation-item-tr').html(html);
|
||||
});
|
||||
}
|
||||
|
||||
show_translation_status_modal(e, $el) {
|
||||
let message_id = decodeURIComponent($el.data('message-id'));
|
||||
|
||||
frappe.xcall('frappe.translate.get_contribution_status', { message_id })
|
||||
.then(doc => {
|
||||
let d = new frappe.ui.Dialog({
|
||||
title: __('Contribution Status'),
|
||||
fields: [
|
||||
{
|
||||
fieldname: 'source_message',
|
||||
label: __('Source Message'),
|
||||
fieldtype: 'Data',
|
||||
read_only: 1
|
||||
},
|
||||
{
|
||||
fieldname: 'translated',
|
||||
label: __('Translated Message'),
|
||||
fieldtype: 'Data',
|
||||
read_only: 1
|
||||
},
|
||||
{
|
||||
fieldname: 'contribution_status',
|
||||
label: __('Contribution Status'),
|
||||
fieldtype: 'Data',
|
||||
read_only: 1
|
||||
},
|
||||
{
|
||||
fieldname: 'modified_by',
|
||||
label: __('Verified By'),
|
||||
fieldtype: 'Data',
|
||||
read_only: 1,
|
||||
depends_on: doc => {
|
||||
return doc.contribution_status == 'Verified';
|
||||
}
|
||||
},
|
||||
]
|
||||
});
|
||||
d.set_values(doc);
|
||||
d.show();
|
||||
});
|
||||
}
|
||||
|
||||
update_header() {
|
||||
let edited_translations_count = Object.keys(this.edited_translations)
|
||||
.length;
|
||||
if (edited_translations_count) {
|
||||
this.page.set_indicator(
|
||||
__('{0} translations pending', [edited_translations_count]),
|
||||
'orange'
|
||||
);
|
||||
} else {
|
||||
this.page.set_indicator('');
|
||||
}
|
||||
this.page.btn_primary.prop('disabled', !edited_translations_count);
|
||||
}
|
||||
|
||||
get_indicator_color(message_obj) {
|
||||
return !message_obj.translated ? 'red' : message_obj.translated_by_google ? 'orange' : 'blue';
|
||||
}
|
||||
|
||||
get_indicator_status_text(message_obj) {
|
||||
if (!message_obj.translated) {
|
||||
return __('Untranslated');
|
||||
} else if (message_obj.translated_by_google) {
|
||||
return __('Google Translation');
|
||||
} else {
|
||||
return __('Community Contribution');
|
||||
}
|
||||
}
|
||||
|
||||
get_contribution_indicator_color(message_obj) {
|
||||
return message_obj.contribution_status == 'Pending' ? 'orange' : 'green';
|
||||
}
|
||||
|
||||
get_code_url(path, line_no, app) {
|
||||
const code_path = path.substring(`apps/${app}`.length);
|
||||
return `https://github.com/frappe/${app}/blob/develop/${code_path}#L${line_no}`;
|
||||
}
|
||||
}
|
||||
26
frappe/desk/page/translation_tool/translation_tool.json
Normal file
26
frappe/desk/page/translation_tool/translation_tool.json
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{
|
||||
"content": null,
|
||||
"creation": "2020-01-30 15:16:12.136323",
|
||||
"docstatus": 0,
|
||||
"doctype": "Page",
|
||||
"idx": 0,
|
||||
"modified": "2020-01-30 15:16:23.273733",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Desk",
|
||||
"name": "translation-tool",
|
||||
"owner": "Administrator",
|
||||
"page_name": "Translation Tool",
|
||||
"roles": [
|
||||
{
|
||||
"role": "System Manager"
|
||||
},
|
||||
{
|
||||
"role": "Translator"
|
||||
}
|
||||
],
|
||||
"script": null,
|
||||
"standard": "Yes",
|
||||
"style": null,
|
||||
"system_page": 1,
|
||||
"title": "Translation Tool"
|
||||
}
|
||||
|
|
@ -62,7 +62,7 @@ class UserProfile {
|
|||
}
|
||||
|
||||
setup_user_search() {
|
||||
this.$user_search_button = this.page.set_secondary_action('Change User', () => {
|
||||
this.$user_search_button = this.page.set_secondary_action(__('Change User'), () => {
|
||||
this.show_user_search_dialog();
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,8 +18,7 @@ app_email = "info@frappe.io"
|
|||
|
||||
docs_app = "frappe_io"
|
||||
|
||||
translation_contribution_url = "https://translate.erpnext.com/api/method/translator.api.add_translation"
|
||||
translation_contribution_status = "https://translate.erpnext.com/api/method/translator.api.translation_status"
|
||||
translator_url = "https://translatev2.erpnext.com"
|
||||
|
||||
before_install = "frappe.utils.install.before_install"
|
||||
after_install = "frappe.utils.install.after_install"
|
||||
|
|
|
|||
|
|
@ -275,3 +275,4 @@ execute:from frappe.desk.page.setup_wizard.install_fixtures import update_gender
|
|||
frappe.patches.v13_0.website_theme_custom_scss
|
||||
frappe.patches.v13_0.set_existing_dashboard_charts_as_public
|
||||
frappe.patches.v13_0.set_path_for_homepage_in_web_page_view
|
||||
frappe.patches.v13_0.migrate_translation_column_data
|
||||
|
|
|
|||
16
frappe/patches/v13_0/migrate_translation_column_data.py
Normal file
16
frappe/patches/v13_0/migrate_translation_column_data.py
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
import frappe
|
||||
|
||||
def execute():
|
||||
frappe.reload_doctype('Translation')
|
||||
frappe.db.sql("""
|
||||
UPDATE `tabTranslation`
|
||||
SET
|
||||
translated_text=target_name,
|
||||
source_text=source_name,
|
||||
contribution_docname=contributed_translation_doctype_name,
|
||||
contribution_status=(CASE status
|
||||
WHEN 'Deleted' THEN 'Rejected'
|
||||
ELSE ''
|
||||
END),
|
||||
contributed=0
|
||||
""")
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
// MIT License. See license.txt
|
||||
|
||||
// library to mange assets (js, css, models, html) etc in the app.
|
||||
// will try and get from localStorge if latest are available
|
||||
// will try and get from localStorage if latest are available
|
||||
// depends on frappe.versions to manage versioning
|
||||
|
||||
frappe.require = function(items, callback) {
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ frappe.ui.form.Control = Class.extend({
|
|||
if (!this.doc.__islocal) {
|
||||
new frappe.views.TranslationManager({
|
||||
'df': this.df,
|
||||
'source_name': value,
|
||||
'source_text': value,
|
||||
'target_language': this.doc.language,
|
||||
'doc': this.doc
|
||||
});
|
||||
|
|
|
|||
|
|
@ -3,26 +3,41 @@
|
|||
|
||||
// for translation
|
||||
frappe._messages = {};
|
||||
frappe._ = function(txt, replace) {
|
||||
if(!txt)
|
||||
return txt;
|
||||
if(typeof(txt) != "string")
|
||||
return txt;
|
||||
var ret = frappe._messages[txt.replace(/\n/g, "")] || txt;
|
||||
if(replace && typeof(replace) === "object") {
|
||||
ret = $.format(ret, replace);
|
||||
frappe._ = function(txt, replace, context = null) {
|
||||
if ($.isEmptyObject(frappe._messages) && frappe.boot) {
|
||||
$.extend(frappe._messages, frappe.boot.__messages);
|
||||
}
|
||||
return ret;
|
||||
if (!txt) return txt;
|
||||
if (typeof txt != "string") return txt;
|
||||
|
||||
let translated_text = '';
|
||||
|
||||
let key = txt.replace(/\n/g, "");
|
||||
if (context) {
|
||||
translated_text = frappe._messages[`${key}:${context}`];
|
||||
}
|
||||
|
||||
if (!translated_text) {
|
||||
translated_text = frappe._messages[key] || txt;
|
||||
}
|
||||
|
||||
if (replace && typeof replace === "object") {
|
||||
translated_text = $.format(translated_text, replace);
|
||||
}
|
||||
return translated_text;
|
||||
};
|
||||
window.__ = frappe._
|
||||
|
||||
window.__ = frappe._;
|
||||
|
||||
frappe.get_languages = function() {
|
||||
if(!frappe.languages) {
|
||||
frappe.languages = []
|
||||
$.each(frappe.boot.lang_dict, function(lang, value){
|
||||
frappe.languages.push({'label': lang, 'value': value})
|
||||
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;
|
||||
});
|
||||
frappe.languages = frappe.languages.sort(function(a, b) { return (a.value < b.value) ? -1 : 1 });
|
||||
}
|
||||
return frappe.languages;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -308,7 +308,7 @@ class DesktopPage {
|
|||
|
||||
make_shortcuts() {
|
||||
this.sections["shortcuts"] = new frappe.widget.WidgetGroup({
|
||||
title: this.data.shortcuts.label || __(`Your Shortcuts`),
|
||||
title: this.data.shortcuts.label || __('Your Shortcuts'),
|
||||
container: this.page,
|
||||
type: "shortcut",
|
||||
columns: 3,
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ frappe.views.TranslationManager = class TranslationManager {
|
|||
fieldtype: 'Data',
|
||||
read_only: 1,
|
||||
bold: 1,
|
||||
default: this.source_name
|
||||
default: this.source_text
|
||||
},
|
||||
{
|
||||
label: __('Translations'),
|
||||
|
|
@ -76,9 +76,9 @@ frappe.views.TranslationManager = class TranslationManager {
|
|||
|
||||
get_translations_data() {
|
||||
return frappe.db.get_list('Translation', {
|
||||
fields: ['name', 'language', 'target_name as translation'],
|
||||
fields: ['name', 'language', 'translated_text as translation'],
|
||||
filters: {
|
||||
source_name: strip_html(this.source_name)
|
||||
source_text: strip_html(this.source_text)
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
|||
26
frappe/tests/test_translate.py
Normal file
26
frappe/tests/test_translate.py
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||
# MIT License. See license.txt
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import frappe, unittest, os
|
||||
import frappe.translate
|
||||
|
||||
dirname = os.path.dirname(__file__)
|
||||
translation_string_file = os.path.join(dirname, 'translation_test_file.txt')
|
||||
|
||||
class TestTranslate(unittest.TestCase):
|
||||
def test_extract_message_from_file(self):
|
||||
data = frappe.translate.get_messages_from_file(translation_string_file)
|
||||
self.assertListEqual(data, expected_output)
|
||||
|
||||
expected_output = [
|
||||
('apps/frappe/frappe/tests/translation_test_file.txt', 'Warning: Unable to find {0} in any table related to {1}', 'This is some context', 2),
|
||||
('apps/frappe/frappe/tests/translation_test_file.txt', 'Warning: Unable to find {0} in any table related to {1}', None, 4),
|
||||
('apps/frappe/frappe/tests/translation_test_file.txt', "You don't have any messages yet.", None, 6),
|
||||
('apps/frappe/frappe/tests/translation_test_file.txt', 'Submit', 'Some DocType', 8),
|
||||
('apps/frappe/frappe/tests/translation_test_file.txt', 'Warning: Unable to find {0} in any table related to {1}', 'This is some context', 15),
|
||||
('apps/frappe/frappe/tests/translation_test_file.txt', 'Submit', 'Some DocType', 17),
|
||||
('apps/frappe/frappe/tests/translation_test_file.txt', "You don't have any messages yet.", None, 19),
|
||||
('apps/frappe/frappe/tests/translation_test_file.txt', "You don't have any messages yet.", None, 21)
|
||||
]
|
||||
|
||||
21
frappe/tests/translation_test_file.txt
Normal file
21
frappe/tests/translation_test_file.txt
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
// JS syntax
|
||||
__("Warning: Unable to find {0} in any table related to {1}" , ['Key', 'DocType'], "This is some context")
|
||||
|
||||
__("Warning: Unable to find {0} in any table related to {1}" , ['Key', 'DocType'])
|
||||
|
||||
__("You don't have any messages yet.")
|
||||
|
||||
__('Submit' , null, "Some DocType")
|
||||
|
||||
// this is considered as invalid
|
||||
__('You don\'t have any messages yet.')
|
||||
|
||||
|
||||
// Python syntax
|
||||
_("Warning: Unable to find {0} in any table related to {1}", context="This is some context").format('Key', 'DocType')
|
||||
|
||||
_('Submit', context="Some DocType")
|
||||
|
||||
_("""You don't have any messages yet.""")
|
||||
|
||||
_('''You don't have any messages yet.''')
|
||||
|
|
@ -5,6 +5,8 @@ from __future__ import unicode_literals, print_function
|
|||
|
||||
from six import iteritems, text_type, string_types, PY2
|
||||
|
||||
from frappe.utils import cstr
|
||||
|
||||
"""
|
||||
frappe.translate
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
|
@ -144,16 +146,6 @@ def get_dict_from_hooks(fortype, name):
|
|||
|
||||
return translated_dict
|
||||
|
||||
def add_lang_dict(code):
|
||||
"""Extracts messages and returns Javascript code snippet to be appened at the end
|
||||
of the given script
|
||||
|
||||
:param code: Javascript code snippet to which translations needs to be appended."""
|
||||
messages = extract_messages_from_code(code)
|
||||
messages = [message for pos, message in messages]
|
||||
code += "\n\n$.extend(frappe._messages, %s)" % json.dumps(make_dict_from_messages(messages))
|
||||
return code
|
||||
|
||||
def make_dict_from_messages(messages, full_dict=None):
|
||||
"""Returns translated messages as a dict in Language specified in `frappe.local.lang`
|
||||
|
||||
|
|
@ -166,6 +158,11 @@ def make_dict_from_messages(messages, full_dict=None):
|
|||
for m in messages:
|
||||
if m[1] in full_dict:
|
||||
out[m[1]] = full_dict[m[1]]
|
||||
# check if msg with context as key exist eg. msg:context
|
||||
if len(m) > 2 and m[2]:
|
||||
key = m[1] + ':' + m[2]
|
||||
if full_dict.get(key):
|
||||
out[key] = full_dict[key]
|
||||
|
||||
return out
|
||||
|
||||
|
|
@ -229,32 +226,38 @@ def load_lang(lang, apps=None):
|
|||
|
||||
def get_translation_dict_from_file(path, lang, app):
|
||||
"""load translation dict from given path"""
|
||||
cleaned = {}
|
||||
translation_map = {}
|
||||
if os.path.exists(path):
|
||||
csv_content = read_csv_file(path)
|
||||
|
||||
for item in csv_content:
|
||||
if len(item)==3:
|
||||
# with file and line numbers
|
||||
cleaned[item[1]] = strip(item[2])
|
||||
|
||||
elif len(item)==2:
|
||||
cleaned[item[0]] = strip(item[1])
|
||||
|
||||
if len(item)==3 and item[2]:
|
||||
key = item[1] + ':' + item[2]
|
||||
translation_map[key] = strip(item[1])
|
||||
elif len(item) in [2, 3]:
|
||||
translation_map[item[0]] = strip(item[1])
|
||||
elif item:
|
||||
raise Exception("Bad translation in '{app}' for language '{lang}': {values}".format(
|
||||
app=app, lang=lang, values=repr(item).encode("utf-8")
|
||||
))
|
||||
|
||||
return cleaned
|
||||
return translation_map
|
||||
|
||||
def get_user_translations(lang):
|
||||
out = frappe.cache().hget('lang_user_translations', lang)
|
||||
if out is None:
|
||||
out = {}
|
||||
for fields in frappe.get_all('Translation',
|
||||
fields= ["source_name", "target_name"], filters={'language': lang}):
|
||||
out.update({fields.source_name: fields.target_name})
|
||||
user_translations = frappe.get_all('Translation',
|
||||
fields=["source_text", "translated_text", "context"],
|
||||
filters={'language': lang})
|
||||
|
||||
for translation in user_translations:
|
||||
key = translation.source_text
|
||||
value = translation.translated_text
|
||||
if translation.context:
|
||||
key += ':' + translation.context
|
||||
out[key] = value
|
||||
|
||||
frappe.cache().hset('lang_user_translations', lang, out)
|
||||
|
||||
return out
|
||||
|
|
@ -271,7 +274,7 @@ def clear_cache():
|
|||
cache.delete_key("translation_assets", shared=True)
|
||||
cache.delete_key("lang_user_translations")
|
||||
|
||||
def get_messages_for_app(app):
|
||||
def get_messages_for_app(app, deduplicate=True):
|
||||
"""Returns all messages (list) for a specified `app`"""
|
||||
messages = []
|
||||
modules = ", ".join(['"{}"'.format(m.title().replace("_", " ")) \
|
||||
|
|
@ -311,7 +314,9 @@ def get_messages_for_app(app):
|
|||
|
||||
# server_messages
|
||||
messages.extend(get_server_messages(app))
|
||||
return deduplicate_messages(messages)
|
||||
if deduplicate:
|
||||
messages = deduplicate_messages(messages)
|
||||
return messages
|
||||
|
||||
def get_messages_from_doctype(name):
|
||||
"""Extract all translatable messages for a doctype. Includes labels, Python code,
|
||||
|
|
@ -352,7 +357,6 @@ def get_messages_from_doctype(name):
|
|||
|
||||
# workflow based on doctype
|
||||
messages.extend(get_messages_from_workflow(doctype=name))
|
||||
|
||||
return messages
|
||||
|
||||
def get_messages_from_workflow(doctype=None, app_name=None):
|
||||
|
|
@ -430,7 +434,7 @@ def get_messages_from_report(name):
|
|||
report = frappe.get_doc("Report", name)
|
||||
messages = _get_messages_from_page_or_report("Report", name,
|
||||
frappe.db.get_value("DocType", report.ref_doctype, "module"))
|
||||
# TODO position here!
|
||||
|
||||
if report.query:
|
||||
messages.extend([(None, message) for message in re.findall('"([^:,^"]*):', report.query) if is_translatable(message)])
|
||||
messages.append((None,report.report_name))
|
||||
|
|
@ -495,21 +499,30 @@ def get_messages_from_file(path):
|
|||
|
||||
:param path: path of the code file
|
||||
"""
|
||||
frappe.flags.setdefault('scanned_files', [])
|
||||
# TODO: Find better alternative
|
||||
# To avoid duplicate scan
|
||||
if path in set(frappe.flags.scanned_files):
|
||||
return []
|
||||
|
||||
frappe.flags.scanned_files.append(path)
|
||||
|
||||
apps_path = get_bench_dir()
|
||||
if os.path.exists(path):
|
||||
with open(path, 'r') as sourcefile:
|
||||
data = [(os.path.relpath(path, apps_path),
|
||||
message) for message in extract_messages_from_code(sourcefile.read(), path.endswith(".py"))]
|
||||
data = [(os.path.relpath(path, apps_path), message, context, line) \
|
||||
for line, message, context in extract_messages_from_code(sourcefile.read())]
|
||||
return data
|
||||
else:
|
||||
# print "Translate: {0} missing".format(os.path.abspath(path))
|
||||
return []
|
||||
|
||||
def extract_messages_from_code(code, is_py=False):
|
||||
"""Extracts translatable srings from a code file
|
||||
|
||||
:param code: code from which translatable files are to be extracted
|
||||
:param is_py: include messages in triple quotes e.g. `_('''message''')`"""
|
||||
def extract_messages_from_code(code):
|
||||
"""
|
||||
Extracts translatable strings from a code file
|
||||
:param code: code from which translatable files are to be extracted
|
||||
:param is_py: include messages in triple quotes e.g. `_('''message''')`
|
||||
"""
|
||||
try:
|
||||
code = frappe.as_unicode(render_include(code))
|
||||
except (TemplateError, ImportError, InvalidIncludePath, IOError):
|
||||
|
|
@ -517,30 +530,34 @@ def extract_messages_from_code(code, is_py=False):
|
|||
pass
|
||||
|
||||
messages = []
|
||||
messages += [(m.start(), m.groups()[0]) for m in re.compile('_\("([^"]*)"').finditer(code)]
|
||||
messages += [(m.start(), m.groups()[0]) for m in re.compile("_\('([^']*)'").finditer(code)]
|
||||
if is_py:
|
||||
messages += [(m.start(), m.groups()[0]) for m in re.compile('_\("{3}([^"]*)"{3}.*\)').finditer(code)]
|
||||
pattern = r"_\(([\"']{,3})(?P<message>((?!\1).)*)\1(\s*,\s*context\s*=\s*([\"'])(?P<py_context>((?!\5).)*)\5)*(\s*,\s*(.)*?\s*(,\s*([\"'])(?P<js_context>((?!\11).)*)\11)*)*\)"
|
||||
|
||||
messages = [(pos, message) for pos, message in messages if is_translatable(message)]
|
||||
return pos_to_line_no(messages, code)
|
||||
for m in re.compile(pattern).finditer(code):
|
||||
message = m.group('message')
|
||||
context = m.group('py_context') or m.group('js_context')
|
||||
pos = m.start()
|
||||
|
||||
if is_translatable(message):
|
||||
messages.append([pos, message, context])
|
||||
|
||||
return add_line_number(messages, code)
|
||||
|
||||
def is_translatable(m):
|
||||
if re.search("[a-zA-Z]", m) and not m.startswith("fa fa-") and not m.endswith("px") and not m.startswith("eval:"):
|
||||
return True
|
||||
return False
|
||||
|
||||
def pos_to_line_no(messages, code):
|
||||
def add_line_number(messages, code):
|
||||
ret = []
|
||||
messages = sorted(messages, key=lambda x: x[0])
|
||||
newlines = [m.start() for m in re.compile('\\n').finditer(code)]
|
||||
line = 1
|
||||
newline_i = 0
|
||||
for pos, message in messages:
|
||||
for pos, message, context in messages:
|
||||
while newline_i < len(newlines) and pos > newlines[newline_i]:
|
||||
line+=1
|
||||
newline_i+= 1
|
||||
ret.append((message))
|
||||
ret.append([line, message, context])
|
||||
return ret
|
||||
|
||||
def read_csv_file(path):
|
||||
|
|
@ -619,7 +636,7 @@ def get_untranslated(lang, untranslated_file, get_all=False):
|
|||
with open(untranslated_file, "w") as f:
|
||||
for m in untranslated:
|
||||
# replace \n with ||| so that internal linebreaks don't get split
|
||||
f.write((escape_newlines(m) + os.linesep).encode("utf-8"))
|
||||
f.write(cstr(frappe.safe_encode(escape_newlines(m) + os.linesep)))
|
||||
else:
|
||||
print("all translated!")
|
||||
|
||||
|
|
@ -724,11 +741,13 @@ def update_translations_for_source(source=None, translation_dict=None):
|
|||
translation_dict = json.loads(translation_dict)
|
||||
|
||||
# for existing records
|
||||
translation_records = frappe.db.get_values('Translation', { 'source_name': source }, ['name', 'language'], as_dict=1)
|
||||
translation_records = frappe.db.get_values('Translation', {
|
||||
'source_text': source
|
||||
}, ['name', 'language'], as_dict=1)
|
||||
for d in translation_records:
|
||||
if translation_dict.get(d.language, None):
|
||||
doc = frappe.get_doc('Translation', d.name)
|
||||
doc.target_name = translation_dict.get(d.language)
|
||||
doc.translated_text = translation_dict.get(d.language)
|
||||
doc.save()
|
||||
# done with this lang value
|
||||
translation_dict.pop(d.language)
|
||||
|
|
@ -736,23 +755,57 @@ def update_translations_for_source(source=None, translation_dict=None):
|
|||
frappe.delete_doc('Translation', d.name)
|
||||
|
||||
# remaining values are to be inserted
|
||||
for lang, target_name in iteritems(translation_dict):
|
||||
for lang, translated_text in iteritems(translation_dict):
|
||||
doc = frappe.new_doc('Translation')
|
||||
doc.language = lang
|
||||
doc.source_name = source
|
||||
doc.target_name = target_name
|
||||
doc.source_text = source
|
||||
doc.translated_text = translated_text
|
||||
doc.save()
|
||||
|
||||
return translation_records
|
||||
|
||||
@frappe.whitelist()
|
||||
def get_translations(source_name):
|
||||
if is_html(source_name):
|
||||
source_name = strip_html_tags(source_name)
|
||||
def get_translations(source_text):
|
||||
if is_html(source_text):
|
||||
source_text = strip_html_tags(source_text)
|
||||
|
||||
return frappe.db.get_list('Translation',
|
||||
fields = ['name', 'language', 'target_name as translation'],
|
||||
fields = ['name', 'language', 'translated_text as translation'],
|
||||
filters = {
|
||||
'source_name': source_name
|
||||
'source_text': source_text
|
||||
}
|
||||
)
|
||||
|
||||
@frappe.whitelist()
|
||||
def get_messages(language, start=0, page_length=100, search_text=''):
|
||||
from frappe.frappeclient import FrappeClient
|
||||
translator = FrappeClient(get_translator_url())
|
||||
translated_dict = translator.post_api('translator.api.get_strings_for_translation', params=locals())
|
||||
|
||||
return translated_dict
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
def get_source_additional_info(source, language=''):
|
||||
from frappe.frappeclient import FrappeClient
|
||||
translator = FrappeClient(get_translator_url())
|
||||
return translator.post_api('translator.api.get_source_additional_info', params=locals())
|
||||
|
||||
@frappe.whitelist()
|
||||
def get_contributions(language):
|
||||
return frappe.get_all('Translation', fields=['*'], filters={
|
||||
'contributed': 1,
|
||||
})
|
||||
|
||||
@frappe.whitelist()
|
||||
def get_contribution_status(message_id):
|
||||
from frappe.frappeclient import FrappeClient
|
||||
doc = frappe.get_doc('Translation', message_id)
|
||||
translator = FrappeClient(get_translator_url())
|
||||
contributed_translation = translator.get_api('translator.api.get_contribution_status', params={
|
||||
'translation_id': doc.contribution_docname
|
||||
})
|
||||
return contributed_translation
|
||||
|
||||
def get_translator_url():
|
||||
return frappe.get_hooks()['translator_url'][0]
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -1,10 +1,8 @@
|
|||
apps/frappe/frappe/utils/nestedset.py,{0} {1} cannot be a leaf node as it has children,"{0} {1} kan ikke være en blad node, da den har undernoder"
|
||||
apps/frappe/frappe/utils/csvutils.py,"Unknown file encoding. Tried utf-8, windows-1250, windows-1252.","Ukendt fil kodning. Prøvede utf-8, vinduer-1250, vinduer-1252."
|
||||
DocType: About Us Settings,"""Company History""",'Virksomhedshistorie'
|
||||
DocType: Currency,"1 Currency = [?] Fraction
|
||||
For e.g. 1 USD = 100 Cent",1 Valuta = [?] Fraktion For eksempel 1 USD = 100 Cent
|
||||
DocType: Workflow State,zoom-in,zoom-in
|
||||
DocType: Workflow State,zoom-out,zoom-out
|
||||
apps/frappe/frappe/public/js/frappe/form/workflow.js, by Role ,af rolle
|
||||
apps/frappe/frappe/public/js/frappe/views/gantt/gantt_view.js,Half Day,Half Day
|
||||
DocType: Auto Email Report,Half Yearly,Halvdelen Årlig
|
||||
Half Day,Half Day,
|
||||
Half Yearly,Halvdelen Årlig,
|
||||
"""Company History""",'Virksomhedshistorie',
|
||||
1 Currency = [?] Fraction\nFor e.g. 1 USD = 100 Cent,1 Valuta = [?] Fraktion For eksempel 1 USD = 100 Cent,
|
||||
"Unknown file encoding. Tried utf-8, windows-1250, windows-1252.","Ukendt fil kodning. Prøvede utf-8, vinduer-1250, vinduer-1252.",
|
||||
zoom-in,zoom-in,
|
||||
zoom-out,zoom-out,
|
||||
{0} {1} cannot be a leaf node as it has children,"{0} {1} kan ikke være en blad node, da den har undernoder",
|
||||
|
|
|
|||
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -1,17 +1,18 @@
|
|||
apps/frappe/frappe/www/printview.py,Not allowed to print cancelled documents,Not allowed to print canceled documents
|
||||
apps/frappe/frappe/templates/pages/integrations/payment-cancel.html,Payment Cancelled,Payment Canceled
|
||||
apps/frappe/frappe/model/document.py,Cannot link cancelled document: {0},Cannot link canceled document: {0}
|
||||
DocType: Workflow State,zoom-out,zoom-out
|
||||
DocType: Print Settings,Allow Print for Cancelled,Allow Print for Canceled
|
||||
DocType: Workflow State,facetime-video,Facetime-Video
|
||||
apps/frappe/frappe/desk/doctype/bulk_update/bulk_update.py,Cancelling {0},Canceling {0}
|
||||
apps/frappe/frappe/model/document.py,Cannot edit cancelled document,Cannot edit canceled document
|
||||
apps/frappe/frappe/templates/pages/integrations/payment-cancel.html,Your payment is cancelled.,Your payment is canceled.
|
||||
apps/frappe/frappe/public/js/frappe/list/bulk_operations.js,You selected Draft or Cancelled documents,You selected Draft or Canceled documents
|
||||
DocType: Workflow Document State,0 - Draft; 1 - Submitted; 2 - Cancelled,0 - Draft; 1 - Submitted; 2 - Canceled
|
||||
DocType: Comment,Cancelled,Canceled
|
||||
apps/frappe/frappe/public/js/frappe/form/save.js,Cancelling,Canceling
|
||||
apps/frappe/frappe/core/doctype/deleted_document/deleted_document.py,Cancelled Document restored as Draft,Canceled Document restored as Draft
|
||||
apps/frappe/frappe/config/settings.py,"States for workflow (e.g. Draft, Approved, Cancelled).","States for workflow (e.g. Draft, Approved, Canceled)."
|
||||
apps/frappe/frappe/workflow/doctype/workflow/workflow.py,Cannot change state of Cancelled Document. Transition row {0},Cannot change state of Canceled Document. Transition row {0}
|
||||
apps/frappe/frappe/public/js/frappe/form/footer/timeline.js,cancelled this document,canceled this document
|
||||
0 - Draft; 1 - Submitted; 2 - Cancelled,0 - Draft; 1 - Submitted; 2 - Canceled,
|
||||
Allow Print for Cancelled,Allow Print for Canceled,
|
||||
Cancelled Document restored as Draft,Canceled Document restored as Draft,
|
||||
Cancelling,Canceling,
|
||||
Cancelling {0},Canceling {0},
|
||||
Cannot change state of Cancelled Document. Transition row {0},Cannot change state of Canceled Document. Transition row {0},
|
||||
Cannot edit cancelled document,Cannot edit canceled document,
|
||||
Cannot link cancelled document: {0},Cannot link canceled document: {0},
|
||||
Not allowed to print cancelled documents,Not allowed to print canceled documents,
|
||||
Payment Cancelled,Payment Canceled,
|
||||
"States for workflow (e.g. Draft, Approved, Cancelled).","States for workflow (e.g. Draft, Approved, Canceled).",
|
||||
You selected Draft or Cancelled documents,You selected Draft or Canceled documents,
|
||||
Your payment is cancelled.,Your payment is canceled.,
|
||||
cancelled this document,canceled this document,
|
||||
facetime-video,Facetime-Video,
|
||||
zoom-out,zoom-out,
|
||||
Cancelled,Canceled,
|
||||
CANCELLED,Canceled,
|
||||
|
|
|
|||
|
File diff suppressed because it is too large
Load diff
|
|
@ -1,2 +1,3 @@
|
|||
DocType: Comment,Comment Type,Tipo de Comentario
|
||||
DocType: Communication,Communication,Comunicacion
|
||||
Comment Type,Tipo de Comentario,
|
||||
Communication,Comunicacion,
|
||||
Components,Componentes,
|
||||
|
|
|
|||
|
|
|
@ -1,31 +1,8 @@
|
|||
DocType: Address Template,"<h4>Default Template</h4>
|
||||
<p>Uses <a href=""http://jinja.pocoo.org/docs/templates/"">Jinja Templating</a> and all the fields of Address (including Custom Fields if any) will be available</p>
|
||||
<pre><code>{{ address_line1 }}<br>
|
||||
{% if address_line2 %}{{ address_line2 }}<br>{% endif -%}
|
||||
{{ city }}<br>
|
||||
{% if state %}{{ state }}<br>{% endif -%}
|
||||
{% if pincode %} PIN: {{ pincode }}<br>{% endif -%}
|
||||
{{ country }}<br>
|
||||
{% if phone %}Phone: {{ phone }}<br>{% endif -%}
|
||||
{% if fax %}Fax: {{ fax }}<br>{% endif -%}
|
||||
{% if email_id %}Email: {{ email_id }}<br>{% endif -%}
|
||||
</code></pre>","<h4> Por defecto la plantilla <!-- h4-->
|
||||
<p> <a href=""http://jinja.pocoo.org/docs/templates/""> Jinja Templating </a> y todos los campos de la Dirección ( incluyendo campos personalizados en su caso) estará disponible <!-- p-->
|
||||
</p><pre> <code> {{address_line1}} & lt; br & gt;
|
||||
{% if address_line2%} {{address_line2}} & lt; br & gt; { endif% -%}
|
||||
{{ciudad}} & lt; br & gt;
|
||||
{% if%} Estado {{Estado}} & lt; br & gt; {% endif -%} {% if
|
||||
código PIN%} PIN: {{código PIN}} & lt; br & gt; {% endif -%}
|
||||
{{país}} & lt; br & gt;
|
||||
{% if teléfono%} Teléfono: {{teléfono}} & lt; br & gt; { % endif -%}
|
||||
{% if fax%} Fax: {{fax}} & lt; br & gt; {% endif -%}
|
||||
{% if email_ID%} Email: {{email_ID}} & lt; br & gt ; {% endif -%}
|
||||
<!-- code--> <!-- pre--></code></pre></h4>"
|
||||
apps/frappe/frappe/public/js/frappe/form/footer/timeline.js,changed values for {0},Valores modificados para {0}
|
||||
DocType: Activity Log,Link DocType,Enlace DocType
|
||||
apps/frappe/frappe/desk/doctype/kanban_board/kanban_board.py,Column Name cannot be empty,El Nombre de la Columna no puede estar vacía
|
||||
apps/frappe/frappe/model/db_query.py,Cannot use sub-query in order by,No se puede utilizar una sub-consulta en order by
|
||||
DocType: LDAP Settings,LDAP First Name Field,Campo de Primer Nombre LDAP
|
||||
DocType: Communication Link,Link Title,Título del Enlace
|
||||
DocType: Workflow State,facetime-video,Vídeo FaceTime
|
||||
DocType: Payment Gateway,Gateway,Puerta de Entrada
|
||||
Cannot use sub-query in order by,No se puede utilizar una sub-consulta en order by,
|
||||
Column Name cannot be empty,El Nombre de la Columna no puede estar vacía,
|
||||
Gateway,Puerta de Entrada,
|
||||
LDAP First Name Field,Campo de Primer Nombre LDAP,
|
||||
Link DocType,Enlace DocType,
|
||||
Link Title,Título del Enlace,
|
||||
changed values for {0},Valores modificados para {0},
|
||||
facetime-video,Vídeo FaceTime,
|
||||
|
|
|
|||
|
|
|
@ -0,0 +1,4 @@
|
|||
Refreshing...,Actualizando...,
|
||||
Clear Filters,Limpiar Filtros,
|
||||
No Events Today,Sin eventos hoy,
|
||||
Today's Events,Eventos para hoy,
|
||||
|
0
frappe/translations/es_es.csv
Normal file
0
frappe/translations/es_es.csv
Normal file
|
|
|
|
@ -1,29 +1,8 @@
|
|||
DocType: Currency,Smallest circulating fraction unit (coin). For e.g. 1 cent for USD and it should be entered as 0.01,"Fracción más pequeña de circulación (moneda). Por ejemplo, 1 centavo por USD y debe ser ingresado como 0.01"
|
||||
DocType: System Settings,"If Apply Strict User Permission is checked and User Permission is defined for a DocType for a User, then all the documents where value of the link is blank, will not be shown to that User","Si está activado Aplicar Permiso de Usuario Estricto y se ha definido el Permiso de Usuario para un DocType para un Usuario, todos los documentos en los que el valor del enlace esté en blanco no se mostrarán a ese Usuario"
|
||||
apps/frappe/frappe/core/doctype/system_settings/system_settings.py,Please select Minimum Password Score,Por favor selecciona la Puntuación Mínima de la Contraseña
|
||||
DocType: Currency,Smallest Currency Fraction Value,Valor de la fracción de moneda más pequeña
|
||||
DocType: Address Template,"<h4>Default Template</h4>
|
||||
<p>Uses <a href=""http://jinja.pocoo.org/docs/templates/"">Jinja Templating</a> and all the fields of Address (including Custom Fields if any) will be available</p>
|
||||
<pre><code>{{ address_line1 }}<br>
|
||||
{% if address_line2 %}{{ address_line2 }}<br>{% endif -%}
|
||||
{{ city }}<br>
|
||||
{% if state %}{{ state }}<br>{% endif -%}
|
||||
{% if pincode %} PIN: {{ pincode }}<br>{% endif -%}
|
||||
{{ country }}<br>
|
||||
{% if phone %}Phone: {{ phone }}<br>{% endif -%}
|
||||
{% if fax %}Fax: {{ fax }}<br>{% endif -%}
|
||||
{% if email_id %}Email: {{ email_id }}<br>{% endif -%}
|
||||
</code></pre>","<h4> Por defecto la plantilla <!-- h4-->
|
||||
<p> <a href=""http://jinja.pocoo.org/docs/templates/""> Jinja Templating </a> y todos los campos de la Dirección ( incluyendo campos personalizados en su caso) estará disponible <!-- p-->
|
||||
</p><pre> <code> {{address_line1}} & lt; br & gt;
|
||||
{% if address_line2%} {{address_line2}} & lt; br & gt; { endif% -%}
|
||||
{{ciudad}} & lt; br & gt;
|
||||
{% if%} Estado {{Estado}} & lt; br & gt; {% endif -%} {% if
|
||||
código PIN%} PIN: {{código PIN}} & lt; br & gt; {% endif -%}
|
||||
{{país}} & lt; br & gt;
|
||||
{% if teléfono%} Teléfono: {{teléfono}} & lt; br & gt; { % endif -%}
|
||||
{% if fax%} Fax: {{fax}} & lt; br & gt; {% endif -%}
|
||||
{% if email_ID%} Email: {{email_ID}} & lt; br & gt ; {% endif -%}
|
||||
<!-- code--> <!-- pre--></code></pre></h4>"
|
||||
DocType: Data Migration Plan,Postprocess Method,Método de Postproceso
|
||||
DocType: Website Settings,<head> HTML,<head> HTML
|
||||
<head> HTML,<head> HTML,
|
||||
"If Apply Strict User Permission is checked and User Permission is defined for a DocType for a User, then all the documents where value of the link is blank, will not be shown to that User","Si está activado Aplicar Permiso de Usuario Estricto y se ha definido el Permiso de Usuario para un DocType para un Usuario, todos los documentos en los que el valor del enlace esté en blanco no se mostrarán a ese Usuario",
|
||||
Please select Minimum Password Score,Por favor selecciona la Puntuación Mínima de la Contraseña,
|
||||
Postprocess Method,Método de Postproceso,
|
||||
Smallest Currency Fraction Value,Valor de la fracción de moneda más pequeña,
|
||||
Smallest circulating fraction unit (coin). For e.g. 1 cent for USD and it should be entered as 0.01,"Fracción más pequeña de circulación (moneda). Por ejemplo, 1 centavo por USD y debe ser ingresado como 0.01",
|
||||
Administration,ADMINISTRACIÓN,
|
||||
Places,LUGARES,
|
||||
|
|
|
|||
|
|
|
@ -1,5 +1,5 @@
|
|||
DocType: Web Form,Accept Payment,Aceptar Pago
|
||||
DocType: Auto Email Report,Based on Permissions For User,Base sobre Permiso de Usuario
|
||||
apps/frappe/frappe/model/base_document.py,"{0}: '{1}' ({3}) will get truncated, as max characters allowed is {2}","{0}: '{1}' ({3}) resultarán truncadas, como caracteres máximo permitido es {2}"
|
||||
DocType: System Settings,Backups,Respaldos
|
||||
apps/frappe/frappe/utils/password_strength.py,Better add a few more letters or another word,Mejor añadir algunas letras extras u otra palabra
|
||||
Accept Payment,Aceptar Pago,
|
||||
Backups,Respaldos,
|
||||
Based on Permissions For User,Base sobre Permiso de Usuario,
|
||||
Better add a few more letters or another word,Mejor añadir algunas letras extras u otra palabra,
|
||||
"{0}: '{1}' ({3}) will get truncated, as max characters allowed is {2}","{0}: '{1}' ({3}) resultarán truncadas, como caracteres máximo permitido es {2}",
|
||||
|
|
|
|||
|
|
|
@ -1,445 +1,442 @@
|
|||
apps/frappe/frappe/public/js/frappe/form/form.js,Permanently Submit {0}?,Presentar permanentemente {0}?
|
||||
DocType: Workflow State,eye-open,- ojo abierto
|
||||
apps/frappe/frappe/public/js/frappe/views/treeview.js,{0} Tree,{0} Árbol
|
||||
apps/frappe/frappe/client.py,Cannot edit standard fields,No se puede editar campos estándar
|
||||
DocType: Report,Report Manager,Administrador de informes
|
||||
apps/frappe/frappe/public/js/frappe/views/pageview.js,Sorry! I could not find what you were looking for.,¡Lo siento! No pude encontrar lo que estabas buscando.
|
||||
DocType: Custom DocPerm,This role update User Permissions for a user,Este función actualiza los Permisos de Usuario para un usuario
|
||||
apps/frappe/frappe/model/document.py,Table {0} cannot be empty,La tabla {0} no puede estar vacío
|
||||
apps/frappe/frappe/public/js/frappe/model/model.js,Parent,Padre
|
||||
DocType: Email Account,Enable Incoming,Habilitar entrante
|
||||
DocType: Workflow State,th-large,-ésimo gran
|
||||
DocType: Communication,Unread Notification Sent,Notificación No leído Enviado
|
||||
apps/frappe/frappe/public/js/frappe/utils/tools.js,Export not allowed. You need {0} role to export.,Exportaciones no permitido. Es necesario {0} función de exportar .
|
||||
apps/frappe/frappe/config/customization.py,"Change field properties (hide, readonly, permission etc.)","Cambiar las propiedades de campo (ocultar, sólo lectura, permisos, etc)"
|
||||
apps/frappe/frappe/config/website.py,Settings for Contact Us Page.,Ajustes para la página de contacto.
|
||||
DocType: Contact Us Settings,"Contact options, like ""Sales Query, Support Query"" etc each on a new line or separated by commas.","Opciones de contacto , como "" Consultas de Ventas , Soporte de consultas"" , etc cada uno en una nueva línea o separados por comas."
|
||||
apps/frappe/frappe/public/js/frappe/form/link_selector.js,Select {0},Seleccione {0}
|
||||
apps/frappe/frappe/public/js/frappe/utils/pretty_date.js,1 minute ago,Hace 1 minuto
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager.js,Document Types,Tipos de Documento
|
||||
apps/frappe/frappe/config/website.py,Embed image slideshows in website pages.,Presentacion de imágenes incrustadas en páginas web .
|
||||
apps/frappe/frappe/core/doctype/doctype/doctype.py,DocType can not be merged,El DocType no se puede fusionar
|
||||
DocType: Newsletter,Email Sent?,Enviar Email ?
|
||||
apps/frappe/frappe/email/doctype/newsletter/newsletter.py,Newsletter has already been sent,El boletín de noticias ya ha sido enviado
|
||||
DocType: Website Settings,Select an image of approx width 150px with a transparent background for best results.,Seleccione una imagen de ancho aprox 150px con fondo transparente para obtener mejores resultados .
|
||||
DocType: Workflow State,italic,itálico
|
||||
apps/frappe/frappe/core/doctype/doctype/doctype.py,{0}: Cannot set Import without Create,{0}: no se puede establecer 'De importación' sin crearlo primero
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html,Permissions get applied on Users based on what Roles they are assigned.,Permisos han sido aplicados a los Usuarios en base a los funciones que tienen asignadas.
|
||||
apps/frappe/frappe/website/doctype/website_theme/website_theme.py,You are not allowed to delete a standard Website Theme,No se le permite eliminar un tema Sitio web estándar
|
||||
apps/frappe/frappe/core/doctype/report/report.js,Disable Report,Desactivar Informe
|
||||
DocType: Report,JavaScript Format: frappe.query_reports['REPORTNAME'] = {},Formato de JavaScript: frappe.query_reports [' REPORTNAME'] = { }
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html,"You can change Submitted documents by cancelling them and then, amending them.","Puede cambiar los documentos Enviados cancelándolos y luego, haciendo los cambios pertinentes."
|
||||
DocType: Email Group,Total Subscribers,Los suscriptores totales
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html,"If a Role does not have access at Level 0, then higher levels are meaningless.","Si una función no tiene acceso en el Nivel 0, entonces los niveles más altos no tienen sentido ."
|
||||
apps/frappe/frappe/public/js/frappe/form/layout.js,Show more details,Mostrar más detalles
|
||||
DocType: Dropbox Settings,Dropbox Access Key,Clave de Acceso de Dropbox
|
||||
apps/frappe/frappe/templates/includes/login/login.js,Valid email and name required,Nombre y Correo Electrónico válido requerido
|
||||
DocType: Workflow State,remove-circle,Eliminar el efecto de círculo
|
||||
DocType: Contact,Is Primary Contact,Es Contacto principal
|
||||
apps/frappe/frappe/core/doctype/doctype/doctype.py,{0}: Cannot set Assign Submit if not Submittable,{0}: no se puede 'Asignar Enviar' si no se puede presentar
|
||||
DocType: Customize Form,"Customize Label, Print Hide, Default etc.","Personaliza etiquetas, impresión Hide , Default , etc"
|
||||
apps/frappe/frappe/printing/page/print_format_builder/print_format_builder_start.html,Create a New Format,Crear un nuevo formato
|
||||
DocType: Website Settings,Set Banner from Image,Establecer Banner de imagen
|
||||
apps/frappe/frappe/templates/emails/new_user.html,A new account has been created for you at {0},Una nueva cuenta ha sido creada para ti en {0}
|
||||
DocType: Property Setter,Field Name,Nombre del campo
|
||||
apps/frappe/frappe/public/js/frappe/ui/toolbar/navbar.html,Search or type a command,Busque o escriba un comando
|
||||
DocType: Contact,Sales Master Manager,Gerente de Ventas
|
||||
apps/frappe/frappe/custom/doctype/custom_field/custom_field.js,Name of the Document Type (DocType) you want this field to be linked to. e.g. Customer,Nombre del tipo de documento (DocType) el cual quiere que este campo este vinculado. por ejemplo al Cliente
|
||||
DocType: Role Profile,Roles Assigned,Funciones Asignadas
|
||||
apps/frappe/frappe/templates/emails/auto_reply.html,"Your query has been received. We will reply back shortly. If you have any additional information, please reply to this mail.","Su petición ha sido recibida. Le contestaremos en breve. Si usted tiene alguna información adicional, por favor responda a este correo."
|
||||
DocType: Event,Repeat Till,Repita Hasta
|
||||
apps/frappe/frappe/printing/page/print_format_builder/print_format_builder_layout.html,Edit Heading,Editar Rubro
|
||||
DocType: Notification Recipient,Email By Document Field,Email Por Campo Documento
|
||||
apps/frappe/frappe/email/receive.py,Cannot connect: {0},No puede conectarse: {0}
|
||||
DocType: Auto Repeat,Subject,Sujeto
|
||||
apps/frappe/frappe/model/base_document.py,{0} must be set first,debe establecerse primero: {0}
|
||||
apps/frappe/frappe/core/doctype/data_export/exporter.py,"If you are uploading new records, ""Naming Series"" becomes mandatory, if present.","Si va a cargar nuevos registros, ""Secuencias"" se convierte en obligatoria, si está presente."
|
||||
DocType: Workflow Document State,Doc Status,Estado Doc.
|
||||
DocType: Comment,Website Manager,Administrador de Página Web
|
||||
DocType: Desktop Icon,List,Vista de árbol
|
||||
DocType: Currency,"Sub-currency. For e.g. ""Cent""","Sub-moneda, por ejemplo, ""Centavo"""
|
||||
apps/frappe/frappe/public/js/frappe/ui/toolbar/awesome_bar.js,"document type..., e.g. customer","Tipo de documento ..., por ejemplo, al cliente"
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html,"Permissions are set on Roles and Document Types (called DocTypes) by setting rights like Read, Write, Create, Delete, Submit, Cancel, Amend, Report, Import, Export, Print, Email and Set User Permissions.","Los permisos se establecen en las Funciones y Tipos de Documentos (llamados DocTypes ) mediante el establecimiento de permisos como Leer, Escribir , Crear, Eliminar , Enviar, Cancelar, Corregir, Informe , Importación, Exportación, Impresión , Correo Electrónico y Establecer Permisos de Usuario ."
|
||||
DocType: Website Settings,Website Theme Image Link,Sitio web Imagen por tema Enlace
|
||||
DocType: Web Form,Sidebar Items,Sidebar Artículos
|
||||
DocType: Workflow State,exclamation-sign,signo de exclamación
|
||||
DocType: About Us Settings,Introduce your company to the website visitor.,Dar a conocer su empresa al visitante del sitio Web .
|
||||
DocType: System Settings,Disable Standard Email Footer,Desactivar pie de página estandar en Email
|
||||
DocType: Translation,Saved,Guardado
|
||||
apps/frappe/frappe/config/users_and_permissions.py,Check which Documents are readable by a User,Marque que documentos pueden ser leídos por el usuario
|
||||
apps/frappe/frappe/public/js/frappe/ui/filters/filters.js,use % as wildcard,Use% como comodín
|
||||
DocType: DocType,Fields,Los campos
|
||||
DocType: System Settings,Your organization name and address for the email footer.,Su nombre de la organización y dirección para el pie de página de correo electrónico.
|
||||
apps/frappe/frappe/core/doctype/data_import/importer.py,Parent Table,Tabla de Padres
|
||||
apps/frappe/frappe/website/doctype/website_settings/website_settings.py,{0} in row {1} cannot have both URL and child items,{0} en la linea {1} no puede tener URL y elementos secundarios
|
||||
apps/frappe/frappe/utils/nestedset.py,Root {0} cannot be deleted,Raíz {0} no se puede eliminar
|
||||
apps/frappe/frappe/printing/page/print_format_builder/print_format_builder.js,Both DocType and Name required,Tanto DocType y Nombre son obligatorios
|
||||
DocType: Contact,Open,Abrir
|
||||
DocType: Workflow Transition,Defines actions on states and the next step and allowed roles.,Define las acciones de los estados y el siguiente paso y funciones permitidas.
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html,"As a best practice, do not assign the same set of permission rule to different Roles. Instead, set multiple Roles to the same User.","Como práctica recomendada , no asigne el mismo conjunto de permisos para diferentes funciones. En su lugar, establecer varias funciones al mismo usuario ."
|
||||
DocType: Address,Address Title,Dirección Título
|
||||
DocType: Website Settings,Footer Items,Elementos del Pie de Página
|
||||
apps/frappe/frappe/config/users_and_permissions.py,User Roles,Funciones de Usuario
|
||||
DocType: Property Setter,Property Setter overrides a standard DocType or Field property,Propiedad Setter se impone a una DocType estándar o propiedad Campo
|
||||
DocType: DocField,Set Only Once,Un único ajuste
|
||||
apps/frappe/frappe/core/doctype/doctype/doctype.py,{0}: Cannot set import as {1} is not importable,{0}: no se puede definir 'De Importación' como {1} porque no es importable
|
||||
DocType: Footer Item,"target = ""_blank""","target = "" _blank"""
|
||||
DocType: User,Send Welcome Email,Enviar Bienvenido Email
|
||||
DocType: DocField,Heading,Título
|
||||
DocType: Workflow State,resize-vertical,cambiar el tamaño vertical
|
||||
DocType: Workflow State,thumbs-down,pulgar hacia abajo
|
||||
DocType: File,Content Hash,Hash contenido
|
||||
DocType: User,Stores the JSON of last known versions of various installed apps. It is used to show release notes.,Almacena el JSON de las últimas versiones conocidas de diferentes aplicaciones instaladas. Se utiliza para mostrar notas de la versión.
|
||||
DocType: Scheduled Job Type,Stopped,Detenido
|
||||
DocType: Customize Form,Sort Order,Orden de Clasificación
|
||||
apps/frappe/frappe/custom/doctype/customize_form/customize_form.py,'In List View' not allowed for type {0} in row {1},No está permitido para el tipo {0} en la linea {1}
|
||||
DocType: Custom Field,Select the label after which you want to insert new field.,Seleccione la etiqueta después de la cual desea insertar el nuevo campo .
|
||||
DocType: Custom Field,Adds a custom field to a DocType,Añade un campo personalizado para un tipo de documento
|
||||
DocType: DocType,Single Types have only one record no tables associated. Values are stored in tabSingles,Tipos simples tienen sólo un registro no hay tablas asociadas . Los valores se almacenan en tabSingles
|
||||
DocType: Workflow,Rules defining transition of state in the workflow.,Reglas que definen la transición de estado del flujo de trabajo .
|
||||
apps/frappe/frappe/email/doctype/newsletter/newsletter.py,Scheduled to send to {0},Programado para enviar a {0}
|
||||
apps/frappe/frappe/core/doctype/doctype/doctype.py,"{0}: Only one rule allowed with the same Role, Level and {1}","{0}: Sólo una regla es permitida con el mismo rol, Nivel y {1}"
|
||||
apps/frappe/frappe/config/settings.py,Set numbering series for transactions.,Establecer series de numeración para las transacciones.
|
||||
apps/frappe/frappe/public/js/frappe/views/communication.js,There were errors while sending email. Please try again.,"Hubo errores al enviar el correo electrónico. Por favor, inténtelo de nuevo."
|
||||
apps/frappe/frappe/printing/page/print_format_builder/print_format_builder_field.html,Edit HTML,Edición de HTML
|
||||
DocType: Address,Shop,Tienda
|
||||
DocType: Contact Us Settings,Contact Us Settings,Configuración de Contáctenos
|
||||
DocType: Workflow State,text-width,texto de ancho
|
||||
apps/frappe/frappe/core/doctype/report/report.js,Report Builder reports are managed directly by the report builder. Nothing to do.,Informes del Generador de informes son enviadas por el generador de informes . No hay nada que hacer.
|
||||
apps/frappe/frappe/core/doctype/doctype/doctype.py,{0} cannot be set for Single types,{0} no se puede establecer para los tipos individuales
|
||||
apps/frappe/frappe/core/doctype/doctype/doctype.py,Report cannot be set for Single types,Reportar no se puede configurar para los tipos individuales
|
||||
DocType: Custom DocPerm,Role,Función
|
||||
DocType: Workflow State,Stop,Detenerse
|
||||
DocType: Footer Item,Link to the page you want to open. Leave blank if you want to make it a group parent.,Enlace a la página que desea abrir. Dejar en blanco si desea que sea un grupo padre.
|
||||
DocType: DocType,Is Single,Es Individual
|
||||
DocType: Report,Script Report,Informe de secuencias de comandos
|
||||
apps/frappe/frappe/public/js/frappe/ui/field_group.js,Missing Values Required,Valores perdidos requeridos
|
||||
DocType: Address,Address,Direcciones
|
||||
DocType: Print Settings,In points. Default is 9.,En puntos. El valor predeterminado es 9.
|
||||
DocType: Property Setter,Property Setter,Establecer prioridad--
|
||||
apps/frappe/frappe/public/js/frappe/list/list_view.js,No {0} found,{0} no encontrado
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html,The system provides many pre-defined roles. You can add new roles to set finer permissions.,El sistema ofrece muchas funciones predefinidas . Usted puede agregar nuevos roles para establecer permisos más finos.
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager.js,Users with role {0}:,Los usuarios con función {0}:
|
||||
DocType: DocField,Section Break,Salto de sección
|
||||
apps/frappe/frappe/desk/query_report.py,Must specify a Query to run,Debe especificar una consulta para ejecutar
|
||||
DocType: Assignment Rule Day,Saturday,Sábado
|
||||
apps/frappe/frappe/public/js/frappe/ui/toolbar/awesome_bar.js,Open a module or tool,Abra un Módulo o Herramienta
|
||||
DocType: Customize Form,Enter Form Type,Introduzca Tipo de Formulario
|
||||
apps/frappe/frappe/public/js/frappe/form/form.js,"Allowing DocType, DocType. Be careful!","Permitir DocType , tipo de documento . ¡Ten cuidado!"
|
||||
apps/frappe/frappe/core/doctype/data_import/importer.py,Start entering data below this line,Empiece a introducir datos por debajo de esta línea
|
||||
DocType: Workflow State,eye-close,ojo -cierre
|
||||
DocType: Address,City/Town,Ciudad/Provincia
|
||||
apps/frappe/frappe/utils/data.py,only.,exactos.
|
||||
DocType: DocField,"For Links, enter the DocType as range.
|
||||
For Select, enter list of Options, each on a new line.","Para enlaces, introduzca el DocType como rango. para seleccionar, ingrese lista de opciones, cada uno en una nueva línea."
|
||||
apps/frappe/frappe/utils/nestedset.py,Multiple root nodes not allowed.,Nodos raíz múltiples no permitidos.
|
||||
DocType: User,Banner Image,Imagen del banner
|
||||
DocType: Email Account,Email Account Name,Correo electrónico Nombre de cuenta
|
||||
apps/frappe/frappe/config/desk.py,"Newsletters to contacts, leads.","Boletines para contactos, clientes potenciales ."
|
||||
DocType: Email Account,"e.g. ""Support"", ""Sales"", ""Jerry Yang""","por ejemplo ""Soporte "","" Ventas "","" Jerry Yang """
|
||||
DocType: Workflow State,align-justify,alinear - justificar
|
||||
DocType: User,Middle Name (Optional),Segundo Nombre ( Opcional)
|
||||
DocType: System Settings,Security,Seguridad
|
||||
apps/frappe/frappe/email/doctype/newsletter/newsletter.py,Scheduled to send to {0} recipients,Programado para enviar a {0} destinatarios
|
||||
DocType: Currency,**Currency** Master,**Moneda** Principal
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager.js,Select Document Type,Seleccionar el tipo de documento
|
||||
apps/frappe/frappe/utils/nestedset.py,Cannot delete {0} as it has child nodes,"No se puede eliminar {0} , ya que tiene nodos secundarios"
|
||||
apps/frappe/frappe/templates/includes/list/filters.html,clear,claro
|
||||
DocType: Communication,User Tags,Nube de Etiquetas
|
||||
DocType: Workflow State,download-alt,descargar -alt
|
||||
apps/frappe/frappe/templates/emails/new_user.html,You can also copy-paste this link in your browser,También puede copiar y pegar este enlace en su navegador
|
||||
apps/frappe/frappe/core/doctype/report/report.js,Write a Python file in the same folder where this is saved and return column and result.,Escriba un archivo de Python en la misma carpeta donde esta se guarda y devuelve la columna y el resultado.
|
||||
DocType: Customize Form,Sort Field,Ordenar campo
|
||||
DocType: System Settings,Session Expiry Mobile,Vencimiento de sesión en dispositivo mobil
|
||||
DocType: Patch Log,Patch Log,Registro de Parches
|
||||
apps/frappe/frappe/public/js/frappe/views/kanban/kanban_column.html,Add,Añadir
|
||||
DocType: Communication,Sent or Received,Envío y de recepción
|
||||
DocType: System Settings,Setup Complete,Configuración completa
|
||||
apps/frappe/frappe/core/doctype/communication/communication.js,Reference DocType,Referencia DocType
|
||||
DocType: Workflow State,minus-sign,signo menos
|
||||
DocType: Blog Post,Markdown,Markdown
|
||||
DocType: DocShare,Document Name,Nombre del documento
|
||||
DocType: User Permission,Applicable For,Aplicable para
|
||||
apps/frappe/frappe/public/js/frappe/ui/toolbar/awesome_bar.js,Help on Search,Ayuda en la búsqueda
|
||||
DocType: DocType,Hide Copy,Copia Oculta
|
||||
apps/frappe/frappe/public/js/frappe/roles_editor.js,Clear all roles,Desactive todos los roles
|
||||
apps/frappe/frappe/custom/doctype/custom_field/custom_field.js,Fieldname which will be the DocType for this link field.,Nombre de campo el cual será el DocType para enlazar el campo.
|
||||
DocType: User,Email Signature,Firma Email
|
||||
apps/frappe/frappe/public/js/frappe/ui/toolbar/search_utils.js,New {0},Nuevo {0}
|
||||
apps/frappe/frappe/email/doctype/email_account/email_account_list.js,Default Inbox,Bandeja de entrada por defecto
|
||||
apps/frappe/frappe/core/doctype/data_export/exporter.py,"For updating, you can update only selective columns.","Para la actualización, usted lo puede hacer solo en algunas columnas."
|
||||
DocType: Contact,Salutation,Saludo
|
||||
apps/frappe/frappe/model/delete_doc.py,User not allowed to delete {0}: {1},El usuario no puede eliminar {0}: {1}
|
||||
DocType: Dropbox Settings,Dropbox Access Secret,Acceso Secreto de Dropbox
|
||||
apps/frappe/frappe/core/doctype/doctype/doctype.py,{0}: Cannot set Cancel without Submit,{0}: no se puede 'Cancelar' sin presentarlo
|
||||
DocType: DocType,Is Submittable,Es presentable--
|
||||
apps/frappe/frappe/model/naming.py,Naming Series mandatory,Las secuencias son obligatorias
|
||||
DocType: Workflow State,Tag,Etiqueta
|
||||
DocType: Report,Script,Guión
|
||||
apps/frappe/frappe/website/doctype/website_theme/website_theme.js,Text Color,Color del texto
|
||||
apps/frappe/frappe/public/js/frappe/form/layout.js,This form does not have any input,Esta forma no tiene ninguna entrada
|
||||
apps/frappe/frappe/core/doctype/system_settings/system_settings.py,Session Expiry must be in format {0},Vencimiento de sesión debe estar en formato {0}
|
||||
DocType: Footer Item,"Select target = ""_blank"" to open in a new page.","Select target = "" _blank"" para abrir en una nueva página."
|
||||
apps/frappe/frappe/public/js/frappe/model/model.js,Permanently delete {0}?,Eliminar permanentemente {0} ?
|
||||
apps/frappe/frappe/core/doctype/file/file.py,Same file has already been attached to the record,El mismo archivo ya se ha adjuntado al registro
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html,Roles can be set for users from their User page.,Las funciones se pueden configurar para los usuarios de su página de usuario .
|
||||
apps/frappe/frappe/core/doctype/doctype/doctype.py,{0}: No basic permissions set,{0}: No se han asignado permisos básicos
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html,"Meaning of Submit, Cancel, Amend","Significado de Enviar, Cancelar, Corregir"
|
||||
DocType: Address Template,This format is used if country specific format is not found,Este formato se utiliza si no se encuentra un formato específico del país
|
||||
DocType: Notification,Send alert if date matches this field's value,Envíe la alarma si la fecha coincide con el valor de este campo
|
||||
DocType: Workflow State,thumbs-up,pulgar hacia arriba
|
||||
DocType: Workflow State,step-backward,paso hacia atrás
|
||||
DocType: Workflow State,text-height,text- altura
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html,Submit an Issue,Presentar un problema
|
||||
DocType: Event,Repeat this Event,Repita este Evento
|
||||
DocType: Address,Maintenance User,Mantenimiento por el Usuario
|
||||
apps/frappe/frappe/core/doctype/version/version_view.html,Row # ,Fila #
|
||||
apps/frappe/frappe/templates/emails/auto_reply.html,This is an automatically generated reply,Esta es una respuesta generada automáticamente
|
||||
apps/frappe/frappe/model/document.py,Record does not exist,Registro no existe
|
||||
apps/frappe/frappe/desk/query_report.py,Query must be a SELECT,Debe seleccionar la Consulta
|
||||
DocType: Data Export,Select DocType,Seleccione tipo de documento
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html,"Certain documents, like an Invoice, should not be changed once final. The final state for such documents is called Submitted. You can restrict which roles can Submit.","Algunos documentos como facturas, no se deben cambiar una vez guardados. El estado final de dichos documentos se llama 'Presentado'. Puede restringir qué roles/usuarios pueden presentar documentos"
|
||||
DocType: Contact,Contact Details,Datos del Contacto
|
||||
apps/frappe/frappe/public/js/frappe/form/save.js,Mandatory fields required in {0},Campos obligatorios requeridos en {0}
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager.js,Reset Permissions for {0}?,Restablecer los permisos para {0} ?
|
||||
DocType: Workflow State,align-left,alinear -izquierda
|
||||
DocType: File,Attached To DocType,Asociado A DocType
|
||||
DocType: Currency,"1 Currency = [?] Fraction
|
||||
For e.g. 1 USD = 100 Cent","1 Moneda = [?] Fracción, ejem: 1 USD = 100 Centavos"
|
||||
apps/frappe/frappe/public/js/frappe/form/link_selector.js,You can use wildcard %,Puede utilizar caracteres comodín%
|
||||
apps/frappe/frappe/config/website.py,Settings for About Us Page.,Ajustes para Nosotros Pagina .
|
||||
apps/frappe/frappe/printing/page/print_format_builder/print_format_builder.js,Edit Custom HTML,Edición de HTML personalizado
|
||||
DocType: Address,Subsidiary,Filial
|
||||
apps/frappe/frappe/public/js/frappe/model/indicator.js,Draft,Borrador.
|
||||
DocType: Contact,Replied,Respondio
|
||||
DocType: Workflow Document State,Update Field,Actualizar Campos
|
||||
apps/frappe/frappe/model/base_document.py,Options not set for link field {0},Las opciones no establecen para campo de enlace {0}
|
||||
apps/frappe/frappe/core/doctype/data_export/exporter.py,Please do not change the template headings.,"Por favor, no cambiar los encabezados de la plantilla."
|
||||
apps/frappe/frappe/config/desk.py,Activity log of all users.,Registro de Actividad para todos los Usuarios
|
||||
DocType: Workflow State,shopping-cart,carro de la compra
|
||||
apps/frappe/frappe/model/naming.py,Invalid naming series (. missing),Serie de nombres Inválidos (. Faltante)
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html,Permissions at higher levels are Field Level permissions. All Fields have a Permission Level set against them and the rules defined at that permissions apply to the field. This is useful in case you want to hide or make certain field read-only for certain Roles.,Permisos en los niveles más altos son los permisos de nivel de campo. Todos los campos tienen un conjunto Nivel de permiso en su contra y las reglas definidas en el que los permisos se aplican al campo. Esto es útil en caso de que quiera ocultar o hacer cierto campo de sólo lectura para ciertas funciones.
|
||||
DocType: SMS Settings,"Enter static url parameters here (Eg. sender=ERPNext, username=ERPNext, password=1234 etc.)","Introduzca los parámetros de URL estáticas aquí (Ej. sender = ERPNext , nombre de usuario = ERPNext , contraseña = 1234 etc )"
|
||||
DocType: Currency,Symbol,Símbolo
|
||||
apps/frappe/frappe/model/base_document.py,Row #{0}:,Fila # {0}:
|
||||
apps/frappe/frappe/core/page/dashboard/dashboard.js,{0} List,Listado: {0}
|
||||
DocType: User Email,Enable Outgoing,Habilitar saliente
|
||||
DocType: Comment,Submitted,Enviado
|
||||
DocType: Property Setter,DocType or Field,DocType o campo
|
||||
DocType: Report,Report Builder,Generador de informes
|
||||
DocType: Comment,Workflow,Flujo de Trabajo
|
||||
apps/frappe/frappe/config/settings.py,"Actions for workflow (e.g. Approve, Cancel).","Acciones para los flujos de trabajo (por ejemplo: Aprobar, Cancelar)."
|
||||
DocType: Web Page,Text Align,Alineación del texto
|
||||
apps/frappe/frappe/core/doctype/doctype/doctype.py,Title field must be a valid fieldname,Campo Título debe ser un nombre de campo válido
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html,"Once you have set this, the users will only be able access documents (eg. Blog Post) where the link exists (eg. Blogger).","Una vez que haya establecido esto, los usuarios sólo tendrán acceso a los documentos que puedan (por ejemplo, Entrada de blog ) donde se encuentra la relación (por ejemplo, Blogger ) ."
|
||||
apps/frappe/frappe/public/js/frappe/form/save.js,Submitting,Presentar
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager.js,Select Role,Seleccione Función
|
||||
DocType: Website Settings,Disable Customer Signup link in Login page,Desactivar enlace de registro del cliente en la página de entrada
|
||||
DocType: Workflow Document State,Represents the states allowed in one document and role assigned to change the state.,Representa los estados permitidos en un solo documento y función asignada a cambiar el estado.
|
||||
apps/frappe/frappe/custom/doctype/customize_form/customize_form.js,Refresh Form,Formulario de actualización
|
||||
DocType: Top Bar Item,"If you set this, this Item will come in a drop-down under the selected parent.","Si usted habilita esto, el elemento creará un menú desplegable--"
|
||||
DocType: Blogger,Posts,Mensajes
|
||||
apps/frappe/frappe/model/rename_doc.py,Maximum {0} rows allowed,Máximo {0} filas permitidos
|
||||
apps/frappe/frappe/public/js/frappe/views/communication.js,Select Print Format,Seleccionar el formato de impresión
|
||||
apps/frappe/frappe/public/js/frappe/ui/messages.js,Enter Value,Introducir valor
|
||||
DocType: Web Page,Style,Estilo
|
||||
DocType: System Settings,dd-mm-yyyy,dd- mm- aaaa
|
||||
apps/frappe/frappe/desk/query_report.py,Must have report permission to access this report.,Debe tener permiso de informe para acceder a este informe.
|
||||
DocType: Workflow State,remove,Quitar
|
||||
DocType: Integration Request,Reference DocName,Referencia DocNombre
|
||||
DocType: Web Form,Success Message,Mensaje de éxito
|
||||
DocType: Footer Item,Company,Compañía(s)
|
||||
DocType: Scheduled Job Log,Scheduled,Programado
|
||||
apps/frappe/frappe/geo/doctype/currency/currency.js,This Currency is disabled. Enable to use in transactions,Esta moneda está deshabilitada . Habilite el uso en las transacciones
|
||||
DocType: Custom Script,Sample,Muestra
|
||||
DocType: Website Script,Script to attach to all web pages.,Guión para unir a todas las páginas web.
|
||||
DocType: Communication,Feedback,Comentarios
|
||||
DocType: Workflow State,Icon will appear on the button,Icono aparecerá en el botón
|
||||
apps/frappe/frappe/public/js/frappe/views/gantt/gantt_view.js,Month,Mes.
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager.js,Select Document Type or Role to start.,Seleccione el Tipo de Documento o Función para empezar.
|
||||
DocType: Website Slideshow,Slideshow Items,Presentación Artículos
|
||||
DocType: Workflow Action,Workflow State,Estados de los flujos de trabajo
|
||||
DocType: Contact Us Settings,Settings for Contact Us Page,Ajustes para Contáctenos Página
|
||||
DocType: Server Script,Script Type,Guión Tipo
|
||||
apps/frappe/frappe/core/doctype/report/report.py,Only Administrator can save a standard report. Please rename and save.,"Sólo el administrador puede guardar un informe estándar. Por favor, cambie el nombre y guardar."
|
||||
apps/frappe/frappe/core/doctype/data_import/importer.py,Not allowed to Import,No tiene permisos para importar
|
||||
DocType: Web Page,Insert Style,Inserte Estilo
|
||||
DocType: Currency,"How should this currency be formatted? If not set, will use system defaults","¿Cómo se debe formatear esta moneda ? Si no se establece, utilizará valores predeterminados del sistema"
|
||||
apps/frappe/frappe/utils/response.py,You need to be logged in and have System Manager Role to be able to access backups.,"Necesitas estar conectado y tener la función de Administrador del Sistema, para poder tener acceso a las copias de seguridad ."
|
||||
apps/frappe/frappe/public/js/frappe/form/form.js,Please save before attaching.,"Por favor, guarde los cambios antes de conectar"
|
||||
apps/frappe/frappe/public/js/frappe/roles_editor.js,Role Permissions,Permisos de la Función
|
||||
DocType: Workflow State,step-forward,paso hacia adelante
|
||||
DocType: Workflow State,th,ª
|
||||
apps/frappe/frappe/core/doctype/data_export/exporter.py,"""Parent"" signifies the parent table in which this row must be added",'Padre' es la tabla principal en la que hay que añadir esta fila
|
||||
,Permitted Documents For User,Documentos permitidos para los usuarios
|
||||
apps/frappe/frappe/core/doctype/docshare/docshare.py,"You need to have ""Share"" permission","Usted necesita tener el permiso ""Compartir"""
|
||||
DocType: About Us Settings,Settings for the About Us Page,Ajustes de la página Quiénes somos
|
||||
apps/frappe/frappe/model/document.py,Cannot edit cancelled document,No se puede editar un documento anulado
|
||||
apps/frappe/frappe/utils/nestedset.py,Nested set error. Please contact the Administrator.,"Error de conjunto anidado . Por favor, póngase en contacto con el Administrador."
|
||||
apps/frappe/frappe/config/website.py,"Setup of top navigation bar, footer and logo.","Configuración de la barra de navegación superior , pie de página y el logotipo."
|
||||
apps/frappe/frappe/public/js/frappe/ui/filters/filter.js,Set,conjunto
|
||||
DocType: Workflow State,align-right,alinear a la derecha
|
||||
DocType: Page,Roles,Funciones
|
||||
apps/frappe/frappe/public/js/frappe/ui/filters/filters.js,Field {0} is not selectable.,El campo {0} no se puede seleccionar .
|
||||
apps/frappe/frappe/core/doctype/report/report.js,Write a SELECT query. Note result is not paged (all data is sent in one go).,Escriba una consulta SELECT. Nota resultado no se pagina ( todos los datos se envían en una sola vez ) .
|
||||
DocType: User,User Defaults,Predeterminadas del Usuario
|
||||
DocType: Workflow State,th-list,th -list
|
||||
DocType: User,Restrict user from this IP address only. Multiple IP addresses can be added by separating with commas. Also accepts partial IP addresses like (111.111.111),Restringir el usuario a esta dirección IP. Todas las direcciones IP se pueden agregar separandolas con comas. También se aceptan direcciones IP parciales como ( 111.111.111 )
|
||||
apps/frappe/frappe/public/js/frappe/views/treeview.js,Select a group node first.,Seleccione un nodo de grupo primero.
|
||||
DocType: Email Account,"Append as communication against this DocType (must have fields, ""Status"", ""Subject"")","Anexar como la comunicación en contra de este tipo de documento (debe tener campos, ""Estado"", ""Asunto"")"
|
||||
DocType: Report,Report Type,Tipo de informe
|
||||
apps/frappe/frappe/public/js/frappe/form/sidebar/share.js,Share With,Comparte con
|
||||
apps/frappe/frappe/public/js/frappe/form/controls/select.js,Please attach a file first.,Adjunte un archivo primero .
|
||||
apps/frappe/frappe/model/naming.py,"There were some errors setting the name, please contact the administrator","Había algunos errores de configuración el nombre, por favor póngase en contacto con el administrador"
|
||||
DocType: Assignment Rule Day,Sunday,Domingo
|
||||
DocType: Contact Us Settings,Send enquiries to this email address,Puede enviar sus preguntas a la siguiente dirección de correo electrónico
|
||||
apps/frappe/frappe/config/website.py,User editable form on Website.,Forma editable Usuario en el Sitio Web.
|
||||
DocType: File,File Size,Tamaño del archivo
|
||||
DocType: Workflow,"Rules for how states are transitions, like next state and which role is allowed to change state etc.","Reglas para transición entre estados, como el siguiente estado y qué función permite cambiar de estado , etc"
|
||||
DocType: Workflow,"Different ""States"" this document can exist in. Like ""Open"", ""Pending Approval"" etc.","Este documento puede estar en Diferentes ""Estados"". Como ""Abierto"", ""Pendiente de Aprobación"", etc."
|
||||
apps/frappe/frappe/utils/verified_command.py,This link is invalid or expired. Please make sure you have pasted correctly.,"Este enlace no es válido o caducado. Por favor, asegúrese de que ha pegado correctamente."
|
||||
apps/frappe/frappe/contacts/doctype/address_template/address_template.py,Default Address Template cannot be deleted,Plantilla de la Direcciones Predeterminadas no puede eliminarse
|
||||
DocType: Workflow State,Search,Búsqueda
|
||||
apps/frappe/frappe/printing/page/print_format_builder/print_format_builder.js,Remove Section,Retire la Sección
|
||||
DocType: User,Change Password,Cambiar contraseña.
|
||||
DocType: Workflow,States,Unidos
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html,"When you Amend a document after Cancel and save it, it will get a new number that is a version of the old number.","Cuando se modifique un documento después de Cancelar y guardarlo , se obtendrá un nuevo número que es una versión del antiguo número."
|
||||
apps/frappe/frappe/sessions.py,Redis cache server not running. Please contact Administrator / Tech support,"Servidor de Caché Redis no esta funcionando. Por favor, póngase en contacto con el Administrador / Soporte técnico"
|
||||
DocType: Custom Field,Field Description,Descripción del Campo
|
||||
DocType: Country,Time Zones,Husos horarios
|
||||
DocType: Workflow State,remove-sign,Eliminar el efecto de signo
|
||||
apps/frappe/frappe/config/settings.py,Define workflows for forms.,Definir los flujos de trabajo para las formas .
|
||||
apps/frappe/frappe/printing/page/print_format_builder/print_format_builder.js,Start new Format,Comenzar una nueva Formato
|
||||
DocType: Workflow State,font,Fuente
|
||||
DocType: Workflow,"If checked, all other workflows become inactive.","Si se selecciona, todos los otros flujos de trabajo se vuelven inactivos ."
|
||||
apps/frappe/frappe/model/rename_doc.py,{0} not allowed to be renamed,{0} no es permitido ser renombrado
|
||||
apps/frappe/frappe/core/doctype/doctype/doctype.py,"{0}: Cannot set Submit, Cancel, Amend without Write","{0}: no se puede Presentar, Cancelar y Corregir sin Guardar"
|
||||
apps/frappe/frappe/__init__.py,Thank you,Gracias
|
||||
DocType: Print Settings,Print Style Preview,Vista previa de Estilo de impresión
|
||||
DocType: About Us Settings,About Us Settings,Configuración de Acerca de Nosotros
|
||||
DocType: Email Account,Use TLS,Utilice TLS
|
||||
apps/frappe/frappe/config/customization.py,Add custom javascript to forms.,Añadir javascript personalizado las formas .
|
||||
,Role Permissions Manager,Administrador de Permisos
|
||||
DocType: Notification,Days Before or After,Días Anteriores o Posteriores
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html,Select Document Types to set which User Permissions are used to limit access.,Seleccione los Tipos de Documento para establecer los Permisos de Usuario para limitar el acceso.
|
||||
apps/frappe/frappe/core/doctype/data_import/data_import.js,Download with data,Descarga de datos
|
||||
apps/frappe/frappe/public/js/frappe/form/workflow.js,Current status,Situación Actual
|
||||
DocType: Notification,Message Examples,Ejemplos de Mensajes
|
||||
apps/frappe/frappe/public/js/frappe/views/treeview.js,Add Child,Agregar subcuenta
|
||||
apps/frappe/frappe/model/delete_doc.py,{0} {1}: Submitted Record cannot be deleted.,{0} {1}: registro presentado no se puede eliminar.
|
||||
DocType: Communication,Read,Lectura
|
||||
apps/frappe/frappe/website/doctype/blog_post/blog_post.py,Posts by {0},Publicaciones por {0}
|
||||
apps/frappe/frappe/core/doctype/report/report.js,"To format columns, give column labels in the query.","Para dar formato a columnas, dar títulos de las columnas en la consulta."
|
||||
apps/frappe/frappe/core/doctype/doctype/doctype.py,{0}: Cannot set Assign Amend if not Submittable,{0}: no se puede 'Asignar Correción' si no se puede presentar
|
||||
apps/frappe/frappe/custom/doctype/customize_form/customize_form.js,Remove all customizations?,Eliminar todas las personalizaciones ?
|
||||
DocType: Website Slideshow,Slideshow Name,Presentación Nombre
|
||||
DocType: Blog Post,"Description for listing page, in plain text, only a couple of lines. (max 140 characters)","Descripción de la página perfil, en texto plano, sólo un par de líneas. (máx. 140 caracteres)"
|
||||
apps/frappe/frappe/public/js/frappe/form/sidebar/share.js,Shared with everyone,Compartido con todo el mundo
|
||||
apps/frappe/frappe/model/base_document.py,Data missing in table,Los datos que faltan en la tabla
|
||||
DocType: Web Form,Success URL,URL de Éxito
|
||||
DocType: Workflow Document State,Only Allow Edit For,Sólo Permitir Editar Para
|
||||
apps/frappe/frappe/core/doctype/user/user.py,Sorry! Sharing with Website User is prohibited.,¡Lo siento! Compartir con los del Sitio Web está prohibido.
|
||||
DocType: Workflow State,resize-full,cambiar a tamaño completo
|
||||
apps/frappe/frappe/desk/query_report.py,Report {0} is disabled,Informe {0} está deshabilitado
|
||||
DocType: DocField,Set non-standard precision for a Float or Currency field,Ajuste de precisión no estándar para Decimales Campo de Moneda
|
||||
DocType: Email Account,Ignore attachments over this size,Ignorar los adjuntos mayores a este tamaño
|
||||
DocType: DocField,Allow on Submit,Permitir en Enviar
|
||||
apps/frappe/frappe/public/js/frappe/views/reports/report_view.js,Pick Columns,Seleccione columnas
|
||||
DocType: Report,Letter Head,Membretes
|
||||
apps/frappe/frappe/printing/page/print_format_builder/print_format_builder_layout.html,Drag elements from the sidebar to add. Drag them back to trash.,Arrastre los elementos de la barra lateral para agregar. Arrastre de nuevo a la papelera de reciclaje.
|
||||
DocType: Workflow State,resize-small,cambiar el tamaño pequeño
|
||||
apps/frappe/frappe/core/doctype/doctype/doctype.py,Default for {0} must be an option,Predeterminado para {0} debe ser una opción
|
||||
apps/frappe/frappe/printing/page/print_format_builder/print_format_builder.js,Select Table Columns for {0},Seleccionar columnas de tabla para {0}
|
||||
DocType: DocField,Report Hide,Ocultar Informe
|
||||
DocType: Custom Field,Label Help,Etiqueta Ayuda
|
||||
DocType: Workflow State,star-empty,- estrella vacía
|
||||
apps/frappe/frappe/model/rename_doc.py,** Failed: {0} to {1}: {2},** Fallo: {0} a {1}: {2}
|
||||
DocType: DocField,Currency,Divisa
|
||||
apps/frappe/frappe/printing/page/print_format_builder/print_format_builder.js,Select Print Format to Edit,Seleccione Formato de impresión a Editar
|
||||
DocType: Address,Shipping,Envío
|
||||
apps/frappe/frappe/printing/doctype/print_format/print_format.py,Standard Print Format cannot be updated,Formato de impresión estándar no se puede actualizar
|
||||
DocType: SMS Settings,Enter url parameter for receiver nos,Introduzca el parámetro url para el receptor no
|
||||
apps/frappe/frappe/contacts/doctype/address_template/address_template.py,Setting this Address Template as default as there is no other default,Al establecer esta plantilla de dirección por defecto ya que no hay otra manera predeterminada
|
||||
DocType: Workflow State,question-sign,Consultar Firma
|
||||
DocType: DocField,No Copy,Sin copia
|
||||
apps/frappe/frappe/website/doctype/web_form/web_form.py,You need to be logged in to access this {0}.,Tienes que estar registrado para acceder a este {0}.
|
||||
DocType: Workflow State,"Style represents the button color: Success - Green, Danger - Red, Inverse - Black, Primary - Dark Blue, Info - Light Blue, Warning - Orange","Estilo representa el color del botón : Éxito - Verde , Peligro - Rojo , Inverso - Negro , Primaria - Azul Oscuro , Info - Azul Claro, Advertencia - Orange"
|
||||
DocType: Workflow State,resize-horizontal,cambiar el tamaño horizontal
|
||||
apps/frappe/frappe/core/doctype/doctype/doctype.py,Series {0} already used in {1},Serie {0} ya se utiliza en {1}
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html,"Permissions at level 0 are Document Level permissions, i.e. they are primary for access to the document.","Los permisos del nivel 0 son los permisos a nivel de documentos, es decir, que tienen permiso especial para los documentos."
|
||||
apps/frappe/frappe/config/users_and_permissions.py,Set Permissions on Document Types and Roles,Establecer Permisos en los Tipos de Documentos y Funciones
|
||||
apps/frappe/frappe/core/doctype/docshare/docshare.py,{0} shared this document with everyone,{0} compartió este documento con todos
|
||||
DocType: Notification,Send alert if this field's value changes,Enviar alerta si cambia el valor de este campo
|
||||
apps/frappe/frappe/printing/page/print_format_builder/print_format_builder.js,Select a DocType to make a new format,Seleccione un tipo de documento para hacer un nuevo formato
|
||||
apps/frappe/frappe/config/settings.py,"Set default format, page size, print style etc.","Establecer formato por defecto, tamaño de página, el estilo de impresión, etc"
|
||||
apps/frappe/frappe/public/js/frappe/ui/toolbar/awesome_bar.js,Search in a document type,Buscar en un tipo de documento
|
||||
DocType: Custom DocPerm,Role and Level,Función y Nivel
|
||||
DocType: Website Script,Website Script,Guión del Sitio Web
|
||||
apps/frappe/frappe/desk/form/utils.py,No further records,No hay registros adicionales
|
||||
apps/frappe/frappe/public/js/frappe/views/pageview.js,Sorry! You are not permitted to view this page.,¡Lo siento! Usted no está autorizado a ver esta página.
|
||||
apps/frappe/frappe/utils/nestedset.py,{0} {1} cannot be a leaf node as it has children,"{0} {1} no puede ser un nodo de hoja , ya que tiene los niños"
|
||||
DocType: Communication,Email,Correo electrónico
|
||||
apps/frappe/frappe/public/js/frappe/utils/pretty_date.js,1 hour ago,Hace 1 hora
|
||||
DocType: Workflow State,share-alt,share- alt
|
||||
DocType: Role,Role Name,Nombre de la Función
|
||||
DocType: DocField,Float,flotador
|
||||
DocType: DocType,DocType is a Table / Form in the application.,El DocType es una tabla / formulario en la aplicación.
|
||||
,Setup Wizard,Asistente de configuración
|
||||
apps/frappe/frappe/website/doctype/website_settings/website_settings.py,{0} does not exist in row {1},{0} no existe en la linea {1}
|
||||
apps/frappe/frappe/templates/emails/auto_reply.html,Thank you for your email,Gracias por tu email
|
||||
apps/frappe/frappe/core/doctype/doctype/doctype.py,Options 'Dynamic Link' type of field must point to another Link Field with options as 'DocType',"Las opciones de campo de tipo 'Vinculo Dinámico' debe apuntar a otro campo con propiedades ""Tipo de Documento"""
|
||||
DocType: About Us Settings,Team Members Heading,Miembros del Equipo Lider
|
||||
DocType: User,Third Party Authentication,Autenticación de socios
|
||||
DocType: Website Settings,Banner is above the Top Menu Bar.,El Banner está por sobre la barra de menú superior.
|
||||
DocType: Website Slideshow,Slideshow like display for the website,Presentación como pantalla para el sitio web
|
||||
DocType: Custom DocPerm,Export,Exportación
|
||||
DocType: Workflow,DocType on which this Workflow is applicable.,El DocType en el presente del flujo de trabajo es aplicable.
|
||||
DocType: Print Settings,PDF Settings,Configuración de PDF
|
||||
DocType: Kanban Board Column,Column Name,Nombre de la columna
|
||||
apps/frappe/frappe/printing/page/print_format_builder/print_format_builder.js,You can add dynamic properties from the document by using Jinja templating.,Puede añadir propiedades dinámicas del documento mediante el uso de plantillas Jinja.
|
||||
apps/frappe/frappe/core/doctype/data_export/exporter.py,"If you are uploading new records, leave the ""name"" (ID) column blank.","Si va a cargar nuevos registros, deje en blanco la columna ""nombre"" (ID)"
|
||||
DocType: Website Settings,Website Theme Image,Sitio web Imagen por tema
|
||||
apps/frappe/frappe/public/js/frappe/model/model.js,Unable to load: {0},No se puede cargar : {0}
|
||||
DocType: Print Settings,Send Print as PDF,Enviar Impresión como PDF
|
||||
apps/frappe/frappe/core/doctype/doctype/doctype.py,There can be only one Fold in a form,Sólo puede haber un doblez en forma
|
||||
apps/frappe/frappe/core/doctype/doctype/doctype.py,{0}: Permission at level 0 must be set before higher levels are set,{0} : Permiso en el nivel 0 se debe establecer antes de fijar niveles más altos
|
||||
apps/frappe/frappe/printing/doctype/print_format/print_format.js,Please select DocType first,"Por favor, seleccione DocType primero"
|
||||
apps/frappe/frappe/utils/csvutils.py,{0} is required,{0} es necesario
|
||||
DocType: DocField,Perm Level,Nivel Perm
|
||||
apps/frappe/frappe/core/doctype/data_import/data_import.js,Select Columns,Seleccionar columnas
|
||||
apps/frappe/frappe/config/website.py,Single Post (article).,Mensaje Individual ( artículo).
|
||||
DocType: Property Setter,Set Value,Valor seleccionado
|
||||
DocType: Notification,Optional: The alert will be sent if this expression is true,Opcional: La alerta será enviado si esta expresión es verdadera
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html,You can use Customize Form to set levels on fields.,Usted puede utilizar Personalizar formulario para establecer los niveles de los campos .
|
||||
DocType: Custom DocPerm,Report,Informe
|
||||
DocType: Report,Ref DocType,Referencia Tipo de Documento
|
||||
apps/frappe/frappe/core/doctype/doctype/doctype.py,{0}: Cannot set Amend without Cancel,{0}: no se puede 'Corregir' sin antes cancelar
|
||||
DocType: Communication,Sending,Envío
|
||||
DocType: Website Slideshow,This goes above the slideshow.,Esto va por encima de la presentación de diapositivas.
|
||||
DocType: Print Settings,Send Email Print Attachments as PDF (Recommended),Enviar Emails con adjuntos en formato PDF (recomendado)
|
||||
DocType: Onboarding Slide Field,Left,Izquierda
|
||||
DocType: Workflow Action,Workflow Action,Acciones de los flujos de trabajo
|
||||
DocType: Event,Send an email reminder in the morning,Enviar un recordatorio por correo electrónico en la mañana
|
||||
DocType: Event,Repeat On,Repetir OK
|
||||
DocType: Website Settings,"Show title in browser window as ""Prefix - title""",Mostrar título en la ventana del navegador como "Prefijo - título"
|
||||
DocType: Access Log,Report Name,Nombre del informe
|
||||
DocType: Website Settings,Title Prefix,Prefijo del Título
|
||||
DocType: Workflow State,cog,diente
|
||||
DocType: DocField,Default,Defecto
|
||||
apps/frappe/frappe/public/js/frappe/form/link_selector.js,{0} added,{0} agregado(s)
|
||||
DocType: Workflow State,star,estrella
|
||||
apps/frappe/frappe/core/doctype/doctype/doctype.py,Max width for type Currency is 100px in row {0},El ancho máximo para la moneda es 100px en la linea {0}
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html,Add a New Role,Añadir un Nuevo Rol
|
||||
apps/frappe/frappe/templates/includes/login/login.js,Oops! Something went wrong,Oups! Algo salió mal
|
||||
DocType: User,Email Settings,Configuración del correo electrónico
|
||||
apps/frappe/frappe/core/doctype/user/user.py,Sorry! User should have complete access to their own record.,¡Lo siento! El usuario debe tener acceso completo a su propio récord.
|
||||
apps/frappe/frappe/custom/doctype/custom_field/custom_field.py,Label is mandatory,Etiqueta es obligatoria
|
||||
DocType: Email Account,Service,Servicio
|
||||
apps/frappe/frappe/public/js/frappe/ui/slides.js,Next,Próximo
|
||||
apps/frappe/frappe/public/js/frappe/views/reports/report_view.js,Report was not saved (there were errors),Informe no se guardó ( hubo errores )
|
||||
DocType: Custom DocPerm,Import,Importación
|
||||
apps/frappe/frappe/custom/doctype/customize_form/customize_form.py,Row {0}: Not allowed to enable Allow on Submit for standard fields,Fila {0}: No se permite habilitar Permitir en Enviar para campos estándar
|
||||
apps/frappe/frappe/website/doctype/web_form/web_form.py,You need to be in developer mode to edit a Standard Web Form,Se requiere estar en modo desarrollador para editar un formulario web estándar.
|
||||
apps/frappe/frappe/templates/includes/login/login.js,Both login and password required,Se requiere tanto usuario como contraseña
|
||||
DocType: Web Form,Text to be displayed for Link to Web Page if this form has a web page. Link route will be automatically generated based on `page_name` and `parent_website_route`,El texto que se muestra para enlazar a la página Web si esta forma dispone de una página web. Ruta Enlace automáticamente se genera en base a `page_name` y` parent_website_route`
|
||||
apps/frappe/frappe/templates/emails/new_user.html,Your login id is,Su nombre de usuario es
|
||||
Add,Añadir,
|
||||
Address,Direcciones,
|
||||
Address Title,Dirección Título,
|
||||
Applicable For,Aplicable para,
|
||||
City/Town,Ciudad/Provincia,
|
||||
Contact Details,Datos del Contacto,
|
||||
Document Name,Nombre del documento,
|
||||
Feedback,Comentarios,
|
||||
Field Name,Nombre del campo,
|
||||
Fields,Los campos,
|
||||
Letter Head,Membretes,
|
||||
Maintenance User,Mantenimiento por el Usuario,
|
||||
Message Examples,Ejemplos de Mensajes,
|
||||
Middle Name (Optional),Segundo Nombre ( Opcional),
|
||||
Next,Próximo,
|
||||
Replied,Respondio,
|
||||
Report,Informe,
|
||||
Report Builder,Generador de informes,
|
||||
Report Type,Tipo de informe,
|
||||
Role,Función,
|
||||
Sales Master Manager,Gerente de Ventas,
|
||||
Salutation,Saludo,
|
||||
Sample,Muestra,
|
||||
Saturday,Sábado,
|
||||
Saved,Guardado,
|
||||
Scheduled,Programado,
|
||||
Search,Búsqueda,
|
||||
Select DocType,Seleccione tipo de documento,
|
||||
Series {0} already used in {1},Serie {0} ya se utiliza en {1},
|
||||
Service,Servicio,
|
||||
Shipping,Envío,
|
||||
Stopped,Detenido,
|
||||
Subject,Sujeto,
|
||||
Sunday,Domingo,
|
||||
Thank you,Gracias,
|
||||
Website Manager,Administrador de Página Web,
|
||||
Workflow,Flujo de Trabajo,
|
||||
"""Parent"" signifies the parent table in which this row must be added",'Padre' es la tabla principal en la que hay que añadir esta fila,
|
||||
'In List View' not allowed for type {0} in row {1},No está permitido para el tipo {0} en la linea {1},
|
||||
** Failed: {0} to {1}: {2},** Fallo: {0} a {1}: {2},
|
||||
**Currency** Master,**Moneda** Principal,
|
||||
1 Currency = [?] Fraction\nFor e.g. 1 USD = 100 Cent,"1 Moneda = [?] Fracción, ejem: 1 USD = 100 Centavos",
|
||||
1 hour ago,Hace 1 hora,
|
||||
1 minute ago,Hace 1 minuto,
|
||||
A new account has been created for you at {0},Una nueva cuenta ha sido creada para ti en {0},
|
||||
About Us Settings,Configuración de Acerca de Nosotros,
|
||||
"Actions for workflow (e.g. Approve, Cancel).","Acciones para los flujos de trabajo (por ejemplo: Aprobar, Cancelar).",
|
||||
Activity log of all users.,Registro de Actividad para todos los Usuarios,
|
||||
Add a New Role,Añadir un Nuevo Rol,
|
||||
Add custom javascript to forms.,Añadir javascript personalizado las formas .,
|
||||
Adds a custom field to a DocType,Añade un campo personalizado para un tipo de documento,
|
||||
Allow on Submit,Permitir en Enviar,
|
||||
"Allowing DocType, DocType. Be careful!","Permitir DocType , tipo de documento . ¡Ten cuidado!",
|
||||
"Append as communication against this DocType (must have fields, ""Status"", ""Subject"")","Anexar como la comunicación en contra de este tipo de documento (debe tener campos, ""Estado"", ""Asunto"")",
|
||||
"As a best practice, do not assign the same set of permission rule to different Roles. Instead, set multiple Roles to the same User.","Como práctica recomendada , no asigne el mismo conjunto de permisos para diferentes funciones. En su lugar, establecer varias funciones al mismo usuario .",
|
||||
Attached To DocType,Asociado A DocType,
|
||||
Banner Image,Imagen del banner,
|
||||
Banner is above the Top Menu Bar.,El Banner está por sobre la barra de menú superior.,
|
||||
Both DocType and Name required,Tanto DocType y Nombre son obligatorios,
|
||||
Both login and password required,Se requiere tanto usuario como contraseña,
|
||||
Cannot connect: {0},No puede conectarse: {0},
|
||||
Cannot delete {0} as it has child nodes,"No se puede eliminar {0} , ya que tiene nodos secundarios",
|
||||
Cannot edit cancelled document,No se puede editar un documento anulado,
|
||||
Cannot edit standard fields,No se puede editar campos estándar,
|
||||
"Certain documents, like an Invoice, should not be changed once final. The final state for such documents is called Submitted. You can restrict which roles can Submit.","Algunos documentos como facturas, no se deben cambiar una vez guardados. El estado final de dichos documentos se llama 'Presentado'. Puede restringir qué roles/usuarios pueden presentar documentos",
|
||||
Change Password,Cambiar contraseña.,
|
||||
"Change field properties (hide, readonly, permission etc.)","Cambiar las propiedades de campo (ocultar, sólo lectura, permisos, etc)",
|
||||
Check which Documents are readable by a User,Marque que documentos pueden ser leídos por el usuario,
|
||||
Clear all roles,Desactive todos los roles,
|
||||
Column Name,Nombre de la columna,
|
||||
Contact Us Settings,Configuración de Contáctenos,
|
||||
"Contact options, like ""Sales Query, Support Query"" etc each on a new line or separated by commas.","Opciones de contacto , como "" Consultas de Ventas , Soporte de consultas"" , etc cada uno en una nueva línea o separados por comas.",
|
||||
Content Hash,Hash contenido,
|
||||
Create a New Format,Crear un nuevo formato,
|
||||
"Customize Label, Print Hide, Default etc.","Personaliza etiquetas, impresión Hide , Default , etc",
|
||||
Data missing in table,Los datos que faltan en la tabla,
|
||||
Days Before or After,Días Anteriores o Posteriores,
|
||||
Default Address Template cannot be deleted,Plantilla de la Direcciones Predeterminadas no puede eliminarse,
|
||||
Default Inbox,Bandeja de entrada por defecto,
|
||||
Define workflows for forms.,Definir los flujos de trabajo para las formas .,
|
||||
Defines actions on states and the next step and allowed roles.,Define las acciones de los estados y el siguiente paso y funciones permitidas.,
|
||||
"Description for listing page, in plain text, only a couple of lines. (max 140 characters)","Descripción de la página perfil, en texto plano, sólo un par de líneas. (máx. 140 caracteres)",
|
||||
"Different ""States"" this document can exist in. Like ""Open"", ""Pending Approval"" etc.","Este documento puede estar en Diferentes ""Estados"". Como ""Abierto"", ""Pendiente de Aprobación"", etc.",
|
||||
Disable Customer Signup link in Login page,Desactivar enlace de registro del cliente en la página de entrada,
|
||||
Disable Report,Desactivar Informe,
|
||||
Disable Standard Email Footer,Desactivar pie de página estandar en Email,
|
||||
Doc Status,Estado Doc.,
|
||||
DocType can not be merged,El DocType no se puede fusionar,
|
||||
DocType is a Table / Form in the application.,El DocType es una tabla / formulario en la aplicación.,
|
||||
DocType on which this Workflow is applicable.,El DocType en el presente del flujo de trabajo es aplicable.,
|
||||
DocType or Field,DocType o campo,
|
||||
Download with Data,Descarga de datos,
|
||||
Drag elements from the sidebar to add. Drag them back to trash.,Arrastre los elementos de la barra lateral para agregar. Arrastre de nuevo a la papelera de reciclaje.,
|
||||
Dropbox Access Key,Clave de Acceso de Dropbox,
|
||||
Dropbox Access Secret,Acceso Secreto de Dropbox,
|
||||
Edit Custom HTML,Edición de HTML personalizado,
|
||||
Edit HTML,Edición de HTML,
|
||||
Edit Heading,Editar Rubro,
|
||||
Email Account Name,Correo electrónico Nombre de cuenta,
|
||||
Email By Document Field,Email Por Campo Documento,
|
||||
Email Settings,Configuración del correo electrónico,
|
||||
Email Signature,Firma Email,
|
||||
Embed image slideshows in website pages.,Presentacion de imágenes incrustadas en páginas web .,
|
||||
Enable Incoming,Habilitar entrante,
|
||||
Enable Outgoing,Habilitar saliente,
|
||||
Enter Form Type,Introduzca Tipo de Formulario,
|
||||
"Enter static url parameters here (Eg. sender=ERPNext, username=ERPNext, password=1234 etc.)","Introduzca los parámetros de URL estáticas aquí (Ej. sender = ERPNext , nombre de usuario = ERPNext , contraseña = 1234 etc )",
|
||||
Enter url parameter for receiver nos,Introduzca el parámetro url para el receptor no,
|
||||
Field Description,Descripción del Campo,
|
||||
Field {0} is not selectable.,El campo {0} no se puede seleccionar .,
|
||||
Fieldname which will be the DocType for this link field.,Nombre de campo el cual será el DocType para enlazar el campo.,
|
||||
File Size,Tamaño del archivo,
|
||||
Float,flotador,
|
||||
Footer Items,Elementos del Pie de Página,
|
||||
"For Links, enter the DocType as range.\nFor Select, enter list of Options, each on a new line.","Para enlaces, introduzca el DocType como rango. para seleccionar, ingrese lista de opciones, cada uno en una nueva línea.",
|
||||
"For updating, you can update only selective columns.","Para la actualización, usted lo puede hacer solo en algunas columnas.",
|
||||
Heading,Título,
|
||||
Help on Search,Ayuda en la búsqueda,
|
||||
Hide Copy,Copia Oculta,
|
||||
"How should this currency be formatted? If not set, will use system defaults","¿Cómo se debe formatear esta moneda ? Si no se establece, utilizará valores predeterminados del sistema",
|
||||
Icon will appear on the button,Icono aparecerá en el botón,
|
||||
"If a Role does not have access at Level 0, then higher levels are meaningless.","Si una función no tiene acceso en el Nivel 0, entonces los niveles más altos no tienen sentido .",
|
||||
"If checked, all other workflows become inactive.","Si se selecciona, todos los otros flujos de trabajo se vuelven inactivos .",
|
||||
"If you are uploading new records, ""Naming Series"" becomes mandatory, if present.","Si va a cargar nuevos registros, ""Secuencias"" se convierte en obligatoria, si está presente.",
|
||||
"If you are uploading new records, leave the ""name"" (ID) column blank.","Si va a cargar nuevos registros, deje en blanco la columna ""nombre"" (ID)",
|
||||
"If you set this, this Item will come in a drop-down under the selected parent.","Si usted habilita esto, el elemento creará un menú desplegable--",
|
||||
Ignore attachments over this size,Ignorar los adjuntos mayores a este tamaño,
|
||||
Import,Importación,
|
||||
In points. Default is 9.,En puntos. El valor predeterminado es 9.,
|
||||
Insert Style,Inserte Estilo,
|
||||
Introduce your company to the website visitor.,Dar a conocer su empresa al visitante del sitio Web .,
|
||||
Invalid naming series (. missing),Serie de nombres Inválidos (. Faltante),
|
||||
Is Primary Contact,Es Contacto principal,
|
||||
Is Single,Es Individual,
|
||||
Is Submittable,Es presentable--,
|
||||
JavaScript Format: frappe.query_reports['REPORTNAME'] = {},Formato de JavaScript: frappe.query_reports [' REPORTNAME'] = { },
|
||||
Label Help,Etiqueta Ayuda,
|
||||
Label is mandatory,Etiqueta es obligatoria,
|
||||
Link to the page you want to open. Leave blank if you want to make it a group parent.,Enlace a la página que desea abrir. Dejar en blanco si desea que sea un grupo padre.,
|
||||
List,Vista de árbol,
|
||||
Mandatory fields required in {0},Campos obligatorios requeridos en {0},
|
||||
Markdown,Markdown,
|
||||
Max width for type Currency is 100px in row {0},El ancho máximo para la moneda es 100px en la linea {0},
|
||||
Maximum {0} rows allowed,Máximo {0} filas permitidos,
|
||||
"Meaning of Submit, Cancel, Amend","Significado de Enviar, Cancelar, Corregir",
|
||||
Multiple root nodes not allowed.,Nodos raíz múltiples no permitidos.,
|
||||
Must have report permission to access this report.,Debe tener permiso de informe para acceder a este informe.,
|
||||
Must specify a Query to run,Debe especificar una consulta para ejecutar,
|
||||
Name of the Document Type (DocType) you want this field to be linked to. e.g. Customer,Nombre del tipo de documento (DocType) el cual quiere que este campo este vinculado. por ejemplo al Cliente,
|
||||
Naming Series mandatory,Las secuencias son obligatorias,
|
||||
Nested set error. Please contact the Administrator.,"Error de conjunto anidado . Por favor, póngase en contacto con el Administrador.",
|
||||
New {0},Nuevo {0},
|
||||
Newsletter has already been sent,El boletín de noticias ya ha sido enviado,
|
||||
"Newsletters to contacts, leads.","Boletines para contactos, clientes potenciales .",
|
||||
No Copy,Sin copia,
|
||||
No further records,No hay registros adicionales,
|
||||
No {0} found,{0} no encontrado,
|
||||
Not allowed to Import,No tiene permisos para importar,
|
||||
"Once you have set this, the users will only be able access documents (eg. Blog Post) where the link exists (eg. Blogger).","Una vez que haya establecido esto, los usuarios sólo tendrán acceso a los documentos que puedan (por ejemplo, Entrada de blog ) donde se encuentra la relación (por ejemplo, Blogger ) .",
|
||||
Only Administrator can save a standard report. Please rename and save.,"Sólo el administrador puede guardar un informe estándar. Por favor, cambie el nombre y guardar.",
|
||||
Only Allow Edit For,Sólo Permitir Editar Para,
|
||||
Oops! Something went wrong,Oups! Algo salió mal,
|
||||
Open a module or tool,Abra un Módulo o Herramienta,
|
||||
Optional: The alert will be sent if this expression is true,Opcional: La alerta será enviado si esta expresión es verdadera,
|
||||
Options 'Dynamic Link' type of field must point to another Link Field with options as 'DocType',"Las opciones de campo de tipo 'Vinculo Dinámico' debe apuntar a otro campo con propiedades ""Tipo de Documento""",
|
||||
Options not set for link field {0},Las opciones no establecen para campo de enlace {0},
|
||||
PDF Settings,Configuración de PDF,
|
||||
Parent,Padre,
|
||||
Parent Table,Tabla de Padres,
|
||||
Patch Log,Registro de Parches,
|
||||
Perm Level,Nivel Perm,
|
||||
Permanently Submit {0}?,Presentar permanentemente {0}?,
|
||||
Permanently delete {0}?,Eliminar permanentemente {0} ?,
|
||||
"Permissions are set on Roles and Document Types (called DocTypes) by setting rights like Read, Write, Create, Delete, Submit, Cancel, Amend, Report, Import, Export, Print, Email and Set User Permissions.","Los permisos se establecen en las Funciones y Tipos de Documentos (llamados DocTypes ) mediante el establecimiento de permisos como Leer, Escribir , Crear, Eliminar , Enviar, Cancelar, Corregir, Informe , Importación, Exportación, Impresión , Correo Electrónico y Establecer Permisos de Usuario .",
|
||||
Permissions at higher levels are Field Level permissions. All Fields have a Permission Level set against them and the rules defined at that permissions apply to the field. This is useful in case you want to hide or make certain field read-only for certain Roles.,Permisos en los niveles más altos son los permisos de nivel de campo. Todos los campos tienen un conjunto Nivel de permiso en su contra y las reglas definidas en el que los permisos se aplican al campo. Esto es útil en caso de que quiera ocultar o hacer cierto campo de sólo lectura para ciertas funciones.,
|
||||
"Permissions at level 0 are Document Level permissions, i.e. they are primary for access to the document.","Los permisos del nivel 0 son los permisos a nivel de documentos, es decir, que tienen permiso especial para los documentos.",
|
||||
Permissions get applied on Users based on what Roles they are assigned.,Permisos han sido aplicados a los Usuarios en base a los funciones que tienen asignadas.,
|
||||
Pick Columns,Seleccione columnas,
|
||||
Please attach a file first.,Adjunte un archivo primero .,
|
||||
Please do not change the template headings.,"Por favor, no cambiar los encabezados de la plantilla.",
|
||||
Please save before attaching.,"Por favor, guarde los cambios antes de conectar",
|
||||
Please select DocType first,"Por favor, seleccione DocType primero",
|
||||
Posts,Mensajes,
|
||||
Posts by {0},Publicaciones por {0},
|
||||
Print Style Preview,Vista previa de Estilo de impresión,
|
||||
Property Setter,Establecer prioridad--,
|
||||
Property Setter overrides a standard DocType or Field property,Propiedad Setter se impone a una DocType estándar o propiedad Campo,
|
||||
Query must be a SELECT,Debe seleccionar la Consulta,
|
||||
Read,Lectura,
|
||||
Record does not exist,Registro no existe,
|
||||
Redis cache server not running. Please contact Administrator / Tech support,"Servidor de Caché Redis no esta funcionando. Por favor, póngase en contacto con el Administrador / Soporte técnico",
|
||||
Ref DocType,Referencia Tipo de Documento,
|
||||
Refresh Form,Formulario de actualización,
|
||||
Remove,Quitar,
|
||||
Remove Section,Retire la Sección,
|
||||
Remove all customizations?,Eliminar todas las personalizaciones ?,
|
||||
Repeat On,Repetir OK,
|
||||
Repeat Till,Repita Hasta,
|
||||
Repeat this Event,Repita este Evento,
|
||||
Report Builder reports are managed directly by the report builder. Nothing to do.,Informes del Generador de informes son enviadas por el generador de informes . No hay nada que hacer.,
|
||||
Report Hide,Ocultar Informe,
|
||||
Report Manager,Administrador de informes,
|
||||
Report Name,Nombre del informe,
|
||||
Report cannot be set for Single types,Reportar no se puede configurar para los tipos individuales,
|
||||
Report was not saved (there were errors),Informe no se guardó ( hubo errores ),
|
||||
Report {0} is disabled,Informe {0} está deshabilitado,
|
||||
Represents the states allowed in one document and role assigned to change the state.,Representa los estados permitidos en un solo documento y función asignada a cambiar el estado.,
|
||||
Reset Permissions for {0}?,Restablecer los permisos para {0} ?,
|
||||
Restrict user from this IP address only. Multiple IP addresses can be added by separating with commas. Also accepts partial IP addresses like (111.111.111),Restringir el usuario a esta dirección IP. Todas las direcciones IP se pueden agregar separandolas con comas. También se aceptan direcciones IP parciales como ( 111.111.111 ),
|
||||
Role Name,Nombre de la Función,
|
||||
Role Permissions,Permisos de la Función,
|
||||
Role and Level,Función y Nivel,
|
||||
Roles,Funciones,
|
||||
Roles Assigned,Funciones Asignadas,
|
||||
Roles can be set for users from their User page.,Las funciones se pueden configurar para los usuarios de su página de usuario .,
|
||||
Root {0} cannot be deleted,Raíz {0} no se puede eliminar,
|
||||
Row #{0}:,Fila # {0}:,
|
||||
Row {0}: Not allowed to enable Allow on Submit for standard fields,Fila {0}: No se permite habilitar Permitir en Enviar para campos estándar,
|
||||
Rules defining transition of state in the workflow.,Reglas que definen la transición de estado del flujo de trabajo .,
|
||||
"Rules for how states are transitions, like next state and which role is allowed to change state etc.","Reglas para transición entre estados, como el siguiente estado y qué función permite cambiar de estado , etc",
|
||||
Same file has already been attached to the record,El mismo archivo ya se ha adjuntado al registro,
|
||||
Scheduled to send to {0},Programado para enviar a {0},
|
||||
Scheduled to send to {0} recipients,Programado para enviar a {0} destinatarios,
|
||||
Script,Guión,
|
||||
Script Report,Informe de secuencias de comandos,
|
||||
Script to attach to all web pages.,Guión para unir a todas las páginas web.,
|
||||
Search in a document type,Buscar en un tipo de documento,
|
||||
Search or type a command,Busque o escriba un comando,
|
||||
Section Break,Salto de sección,
|
||||
Security,Seguridad,
|
||||
Select Columns,Seleccionar columnas,
|
||||
Select Document Type,Seleccionar el tipo de documento,
|
||||
Select Document Type or Role to start.,Seleccione el Tipo de Documento o Función para empezar.,
|
||||
Select Document Types to set which User Permissions are used to limit access.,Seleccione los Tipos de Documento para establecer los Permisos de Usuario para limitar el acceso.,
|
||||
Select Print Format,Seleccionar el formato de impresión,
|
||||
Select Print Format to Edit,Seleccione Formato de impresión a Editar,
|
||||
Select Role,Seleccione Función,
|
||||
Select Table Columns for {0},Seleccionar columnas de tabla para {0},
|
||||
Select a DocType to make a new format,Seleccione un tipo de documento para hacer un nuevo formato,
|
||||
Select a group node first.,Seleccione un nodo de grupo primero.,
|
||||
Select an image of approx width 150px with a transparent background for best results.,Seleccione una imagen de ancho aprox 150px con fondo transparente para obtener mejores resultados .,
|
||||
"Select target = ""_blank"" to open in a new page.","Select target = "" _blank"" para abrir en una nueva página.",
|
||||
Select the label after which you want to insert new field.,Seleccione la etiqueta después de la cual desea insertar el nuevo campo .,
|
||||
Select {0},Seleccione {0},
|
||||
Send Email Print Attachments as PDF (Recommended),Enviar Emails con adjuntos en formato PDF (recomendado),
|
||||
Send Print as PDF,Enviar Impresión como PDF,
|
||||
Send Welcome Email,Enviar Bienvenido Email,
|
||||
Send alert if date matches this field's value,Envíe la alarma si la fecha coincide con el valor de este campo,
|
||||
Send alert if this field's value changes,Enviar alerta si cambia el valor de este campo,
|
||||
Send an email reminder in the morning,Enviar un recordatorio por correo electrónico en la mañana,
|
||||
Send enquiries to this email address,Puede enviar sus preguntas a la siguiente dirección de correo electrónico,
|
||||
Sent or Received,Envío y de recepción,
|
||||
Session Expiry Mobile,Vencimiento de sesión en dispositivo mobil,
|
||||
Session Expiry must be in format {0},Vencimiento de sesión debe estar en formato {0},
|
||||
Set Banner from Image,Establecer Banner de imagen,
|
||||
Set Only Once,Un único ajuste,
|
||||
Set Permissions on Document Types and Roles,Establecer Permisos en los Tipos de Documentos y Funciones,
|
||||
Set Value,Valor seleccionado,
|
||||
"Set default format, page size, print style etc.","Establecer formato por defecto, tamaño de página, el estilo de impresión, etc",
|
||||
Set non-standard precision for a Float or Currency field,Ajuste de precisión no estándar para Decimales Campo de Moneda,
|
||||
Set numbering series for transactions.,Establecer series de numeración para las transacciones.,
|
||||
Setting this Address Template as default as there is no other default,Al establecer esta plantilla de dirección por defecto ya que no hay otra manera predeterminada,
|
||||
Settings for About Us Page.,Ajustes para Nosotros Pagina .,
|
||||
Settings for Contact Us Page,Ajustes para Contáctenos Página,
|
||||
Settings for Contact Us Page.,Ajustes para la página de contacto.,
|
||||
Settings for the About Us Page,Ajustes de la página Quiénes somos,
|
||||
Setup Complete,Configuración completa,
|
||||
"Setup of top navigation bar, footer and logo.","Configuración de la barra de navegación superior , pie de página y el logotipo.",
|
||||
Share With,Comparte con,
|
||||
Shared with everyone,Compartido con todo el mundo,
|
||||
Shop,Tienda,
|
||||
Show more details,Mostrar más detalles,
|
||||
"Show title in browser window as ""Prefix - title""",Mostrar título en la ventana del navegador como "Prefijo - título",
|
||||
Sidebar Items,Sidebar Artículos,
|
||||
Single Post (article).,Mensaje Individual ( artículo).,
|
||||
Single Types have only one record no tables associated. Values are stored in tabSingles,Tipos simples tienen sólo un registro no hay tablas asociadas . Los valores se almacenan en tabSingles,
|
||||
Slideshow Items,Presentación Artículos,
|
||||
Slideshow Name,Presentación Nombre,
|
||||
Slideshow like display for the website,Presentación como pantalla para el sitio web,
|
||||
Sorry! I could not find what you were looking for.,¡Lo siento! No pude encontrar lo que estabas buscando.,
|
||||
Sorry! Sharing with Website User is prohibited.,¡Lo siento! Compartir con los del Sitio Web está prohibido.,
|
||||
Sorry! User should have complete access to their own record.,¡Lo siento! El usuario debe tener acceso completo a su propio récord.,
|
||||
Sorry! You are not permitted to view this page.,¡Lo siento! Usted no está autorizado a ver esta página.,
|
||||
Sort Field,Ordenar campo,
|
||||
Sort Order,Orden de Clasificación,
|
||||
Standard Print Format cannot be updated,Formato de impresión estándar no se puede actualizar,
|
||||
Start entering data below this line,Empiece a introducir datos por debajo de esta línea,
|
||||
Start new Format,Comenzar una nueva Formato,
|
||||
States,Unidos,
|
||||
Stores the JSON of last known versions of various installed apps. It is used to show release notes.,Almacena el JSON de las últimas versiones conocidas de diferentes aplicaciones instaladas. Se utiliza para mostrar notas de la versión.,
|
||||
Style,Estilo,
|
||||
"Style represents the button color: Success - Green, Danger - Red, Inverse - Black, Primary - Dark Blue, Info - Light Blue, Warning - Orange","Estilo representa el color del botón : Éxito - Verde , Peligro - Rojo , Inverso - Negro , Primaria - Azul Oscuro , Info - Azul Claro, Advertencia - Orange",
|
||||
"Sub-currency. For e.g. ""Cent""","Sub-moneda, por ejemplo, ""Centavo""",
|
||||
Submit an Issue,Presentar un problema,
|
||||
Submitting,Presentar,
|
||||
Subsidiary,Filial,
|
||||
Success Message,Mensaje de éxito,
|
||||
Success URL,URL de Éxito,
|
||||
Symbol,Símbolo,
|
||||
Table {0} cannot be empty,La tabla {0} no puede estar vacío,
|
||||
Team Members Heading,Miembros del Equipo Lider,
|
||||
Text Align,Alineación del texto,
|
||||
Text Color,Color del texto,
|
||||
Text to be displayed for Link to Web Page if this form has a web page. Link route will be automatically generated based on `page_name` and `parent_website_route`,El texto que se muestra para enlazar a la página Web si esta forma dispone de una página web. Ruta Enlace automáticamente se genera en base a `page_name` y` parent_website_route`,
|
||||
Thank you for your email,Gracias por tu email,
|
||||
The system provides many pre-defined roles. You can add new roles to set finer permissions.,El sistema ofrece muchas funciones predefinidas . Usted puede agregar nuevos roles para establecer permisos más finos.,
|
||||
There can be only one Fold in a form,Sólo puede haber un doblez en forma,
|
||||
There were errors while sending email. Please try again.,"Hubo errores al enviar el correo electrónico. Por favor, inténtelo de nuevo.",
|
||||
"There were some errors setting the name, please contact the administrator","Había algunos errores de configuración el nombre, por favor póngase en contacto con el administrador",
|
||||
Third Party Authentication,Autenticación de socios,
|
||||
This Currency is disabled. Enable to use in transactions,Esta moneda está deshabilitada . Habilite el uso en las transacciones,
|
||||
This form does not have any input,Esta forma no tiene ninguna entrada,
|
||||
This format is used if country specific format is not found,Este formato se utiliza si no se encuentra un formato específico del país,
|
||||
This goes above the slideshow.,Esto va por encima de la presentación de diapositivas.,
|
||||
This is an automatically generated reply,Esta es una respuesta generada automáticamente,
|
||||
This link is invalid or expired. Please make sure you have pasted correctly.,"Este enlace no es válido o caducado. Por favor, asegúrese de que ha pegado correctamente.",
|
||||
This role update User Permissions for a user,Este función actualiza los Permisos de Usuario para un usuario,
|
||||
Time Zones,Husos horarios,
|
||||
Title Prefix,Prefijo del Título,
|
||||
Title field must be a valid fieldname,Campo Título debe ser un nombre de campo válido,
|
||||
"To format columns, give column labels in the query.","Para dar formato a columnas, dar títulos de las columnas en la consulta.",
|
||||
Total Subscribers,Los suscriptores totales,
|
||||
Unable to load: {0},No se puede cargar : {0},
|
||||
Unread Notification Sent,Notificación No leído Enviado,
|
||||
Update Field,Actualizar Campos,
|
||||
Use TLS,Utilice TLS,
|
||||
User Defaults,Predeterminadas del Usuario,
|
||||
User Roles,Funciones de Usuario,
|
||||
User Tags,Nube de Etiquetas,
|
||||
User editable form on Website.,Forma editable Usuario en el Sitio Web.,
|
||||
User not allowed to delete {0}: {1},El usuario no puede eliminar {0}: {1},
|
||||
Users with role {0}:,Los usuarios con función {0}:,
|
||||
Valid email and name required,Nombre y Correo Electrónico válido requerido,
|
||||
Website Script,Guión del Sitio Web,
|
||||
Website Theme Image,Sitio web Imagen por tema,
|
||||
Website Theme Image Link,Sitio web Imagen por tema Enlace,
|
||||
"When you Amend a document after Cancel and save it, it will get a new number that is a version of the old number.","Cuando se modifique un documento después de Cancelar y guardarlo , se obtendrá un nuevo número que es una versión del antiguo número.",
|
||||
Workflow Action,Acciones de los flujos de trabajo,
|
||||
Workflow State,Estados de los flujos de trabajo,
|
||||
Write a Python file in the same folder where this is saved and return column and result.,Escriba un archivo de Python en la misma carpeta donde esta se guarda y devuelve la columna y el resultado.,
|
||||
Write a SELECT query. Note result is not paged (all data is sent in one go).,Escriba una consulta SELECT. Nota resultado no se pagina ( todos los datos se envían en una sola vez ) .,
|
||||
You are not allowed to delete a standard Website Theme,No se le permite eliminar un tema Sitio web estándar,
|
||||
You can add dynamic properties from the document by using Jinja templating.,Puede añadir propiedades dinámicas del documento mediante el uso de plantillas Jinja.,
|
||||
"You can change Submitted documents by cancelling them and then, amending them.","Puede cambiar los documentos Enviados cancelándolos y luego, haciendo los cambios pertinentes.",
|
||||
You can use Customize Form to set levels on fields.,Usted puede utilizar Personalizar formulario para establecer los niveles de los campos .,
|
||||
You can use wildcard %,Puede utilizar caracteres comodín%,
|
||||
You need to be in developer mode to edit a Standard Web Form,Se requiere estar en modo desarrollador para editar un formulario web estándar.,
|
||||
You need to be logged in and have System Manager Role to be able to access backups.,"Necesitas estar conectado y tener la función de Administrador del Sistema, para poder tener acceso a las copias de seguridad .",
|
||||
You need to be logged in to access this {0}.,Tienes que estar registrado para acceder a este {0}.,
|
||||
"You need to have ""Share"" permission","Usted necesita tener el permiso ""Compartir""",
|
||||
Your login id is,Su nombre de usuario es,
|
||||
Your organization name and address for the email footer.,Su nombre de la organización y dirección para el pie de página de correo electrónico.,
|
||||
"Your query has been received. We will reply back shortly. If you have any additional information, please reply to this mail.","Su petición ha sido recibida. Le contestaremos en breve. Si usted tiene alguna información adicional, por favor responda a este correo.",
|
||||
align-justify,alinear - justificar,
|
||||
align-left,alinear -izquierda,
|
||||
align-right,alinear a la derecha,
|
||||
cog,diente,
|
||||
dd-mm-yyyy,dd- mm- aaaa,
|
||||
"document type..., e.g. customer","Tipo de documento ..., por ejemplo, al cliente",
|
||||
download-alt,descargar -alt,
|
||||
"e.g. ""Support"", ""Sales"", ""Jerry Yang""","por ejemplo ""Soporte "","" Ventas "","" Jerry Yang """,
|
||||
exclamation-sign,signo de exclamación,
|
||||
eye-close,ojo -cierre,
|
||||
eye-open,- ojo abierto,
|
||||
italic,itálico,
|
||||
minus-sign,signo menos,
|
||||
only.,exactos.,
|
||||
question-sign,Consultar Firma,
|
||||
remove-circle,Eliminar el efecto de círculo,
|
||||
remove-sign,Eliminar el efecto de signo,
|
||||
resize-full,cambiar a tamaño completo,
|
||||
resize-horizontal,cambiar el tamaño horizontal,
|
||||
resize-small,cambiar el tamaño pequeño,
|
||||
resize-vertical,cambiar el tamaño vertical,
|
||||
share-alt,share- alt,
|
||||
shopping-cart,carro de la compra,
|
||||
star,estrella,
|
||||
star-empty,- estrella vacía,
|
||||
step-backward,paso hacia atrás,
|
||||
step-forward,paso hacia adelante,
|
||||
"target = ""_blank""","target = "" _blank""",
|
||||
text-height,text- altura,
|
||||
text-width,texto de ancho,
|
||||
th,ª,
|
||||
th-large,-ésimo gran,
|
||||
th-list,th -list,
|
||||
thumbs-down,pulgar hacia abajo,
|
||||
thumbs-up,pulgar hacia arriba,
|
||||
use % as wildcard,Use% como comodín,
|
||||
{0} List,Listado: {0},
|
||||
{0} Tree,{0} Árbol,
|
||||
{0} added,{0} agregado(s),
|
||||
{0} cannot be set for Single types,{0} no se puede establecer para los tipos individuales,
|
||||
{0} does not exist in row {1},{0} no existe en la linea {1},
|
||||
{0} in row {1} cannot have both URL and child items,{0} en la linea {1} no puede tener URL y elementos secundarios,
|
||||
{0} must be set first,debe establecerse primero: {0},
|
||||
{0} not allowed to be renamed,{0} no es permitido ser renombrado,
|
||||
{0} shared this document with everyone,{0} compartió este documento con todos,
|
||||
{0} {1} cannot be a leaf node as it has children,"{0} {1} no puede ser un nodo de hoja , ya que tiene los niños",
|
||||
{0}: Cannot set Amend without Cancel,{0}: no se puede 'Corregir' sin antes cancelar,
|
||||
{0}: Cannot set Assign Amend if not Submittable,{0}: no se puede 'Asignar Correción' si no se puede presentar,
|
||||
{0}: Cannot set Assign Submit if not Submittable,{0}: no se puede 'Asignar Enviar' si no se puede presentar,
|
||||
{0}: Cannot set Cancel without Submit,{0}: no se puede 'Cancelar' sin presentarlo,
|
||||
{0}: Cannot set Import without Create,{0}: no se puede establecer 'De importación' sin crearlo primero,
|
||||
"{0}: Cannot set Submit, Cancel, Amend without Write","{0}: no se puede Presentar, Cancelar y Corregir sin Guardar",
|
||||
{0}: Cannot set import as {1} is not importable,{0}: no se puede definir 'De Importación' como {1} porque no es importable,
|
||||
{0}: No basic permissions set,{0}: No se han asignado permisos básicos,
|
||||
"{0}: Only one rule allowed with the same Role, Level and {1}","{0}: Sólo una regla es permitida con el mismo rol, Nivel y {1}",
|
||||
{0}: Permission at level 0 must be set before higher levels are set,{0} : Permiso en el nivel 0 se debe establecer antes de fijar niveles más altos,
|
||||
Script Type,Guión Tipo,
|
||||
Add Child,Agregar subcuenta,
|
||||
Company,Compañía(s),
|
||||
Currency,Divisa,
|
||||
Default,Defecto,
|
||||
Enter Value,Introducir valor,
|
||||
Export,Exportación,
|
||||
Export not allowed. You need {0} role to export.,Exportaciones no permitido. Es necesario {0} función de exportar .,
|
||||
Missing Values Required,Valores perdidos requeridos,
|
||||
Month,Mes.,
|
||||
Open,Abrir,
|
||||
Sending,Envío,
|
||||
Set,conjunto,
|
||||
Setup Wizard,Asistente de configuración,
|
||||
Submitted,Enviado,
|
||||
You can also copy-paste this link in your browser,También puede copiar y pegar este enlace en su navegador,
|
||||
{0} is required,{0} es necesario,
|
||||
DRAFT,Borrador.,
|
||||
EMail,Correo electrónico,
|
||||
Left,Izquierda,
|
||||
Role Permissions Manager,Administrador de Permisos,
|
||||
Permitted Documents For User,Documentos permitidos para los usuarios,
|
||||
Reference Docname,Referencia DocNombre,
|
||||
Reference Doctype,Referencia DocType,
|
||||
Select Doctype,Seleccione tipo de documento,
|
||||
clear,claro,
|
||||
font,Fuente,
|
||||
left,Izquierda,
|
||||
list,Vista de árbol,
|
||||
remove,Quitar,
|
||||
search,Búsqueda,
|
||||
stop,Detenerse,
|
||||
tag,Etiqueta,
|
||||
|
|
|
|||
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -1,26 +1 @@
|
|||
DocType: Address Template,"<h4>Default Template</h4>
|
||||
<p>Uses <a href=""http://jinja.pocoo.org/docs/templates/"">Jinja Templating</a> and all the fields of Address (including Custom Fields if any) will be available</p>
|
||||
<pre><code>{{ address_line1 }}<br>
|
||||
{% if address_line2 %}{{ address_line2 }}<br>{% endif -%}
|
||||
{{ city }}<br>
|
||||
{% if state %}{{ state }}<br>{% endif -%}
|
||||
{% if pincode %} PIN: {{ pincode }}<br>{% endif -%}
|
||||
{{ country }}<br>
|
||||
{% if phone %}Phone: {{ phone }}<br>{% endif -%}
|
||||
{% if fax %}Fax: {{ fax }}<br>{% endif -%}
|
||||
{% if email_id %}Email: {{ email_id }}<br>{% endif -%}
|
||||
</code></pre>","<h4> Modèle par défaut <!-- h4-->
|
||||
<p> <a href=""http://jinja.pocoo.org/docs/templates/""> Jinja Templating </a> et tous les champs d'adresse ( y compris les champs personnalisés le cas échéant) sera disponible <!-- p-->
|
||||
</p><pre> <code> {{address_line1}} & lt; br & gt;
|
||||
{% si address_line2%} {{address_line2}} & lt; br & gt; { % endif -%}
|
||||
{{ville}} & lt; br & gt;
|
||||
{% si l'état%} {{}} Etat & lt; br & gt; {% endif -%} {% if
|
||||
code PIN%} PIN: {{code PIN}} & lt; br & gt; {% endif -%}
|
||||
{{pays}} & lt; br & gt;
|
||||
{% si le téléphone%} Téléphone: {{téléphone}} & lt; br & gt; { % endif -%}
|
||||
{% if télécopieur%} Fax: {{fax}} & lt; br & gt; {% endif -%}
|
||||
{% si email_id%} Email: {{email_id}} & lt; br & gt ; {% endif -%}
|
||||
<!-- code--> <!-- pre--></code></pre></h4>"
|
||||
DocType: Notification,"To add dynamic subject, use jinja tags like
|
||||
|
||||
<div><pre><code>{{ doc.name }} Delivered</code></pre></div>","Pour ajouter l'objet dynamique, utiliser des balises comme Jinja <div><pre> <code>{{ doc.name }} Delivered</code> </pre> </div>"
|
||||
"To add dynamic subject, use jinja tags like\n\n<div><pre><code>{{ doc.name }} Delivered</code></pre></div>","Pour ajouter l'objet dynamique, utiliser des balises comme Jinja <div><pre> <code>{{ doc.name }} Delivered</code> </pre> </div>",
|
||||
|
|
|
|||
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -1,11 +1,10 @@
|
|||
apps/frappe/frappe/email/doctype/email_account/email_account.py,{0} is mandatory,{0} ningombwa
|
||||
apps/frappe/frappe/desk/page/activity/activity_row.html,{0} {1} to {2},{0} {1} kugeza kuri {2}
|
||||
apps/frappe/frappe/desk/reportview.py,{0} is saved,{0} yabitswe
|
||||
apps/frappe/frappe/permissions.py,{0} {1} not found,{0} {1} Ntayihari
|
||||
apps/frappe/frappe/desk/form/save.py,{0} {1} already exists,{0} {1} Isanzwe Irimo
|
||||
apps/frappe/frappe/public/js/frappe/form/link_selector.js,{0} {1} added,{0} {1} Igiyemo
|
||||
apps/frappe/frappe/public/js/frappe/form/sidebar/form_sidebar.js,{0} edited this {1},{0} yahinduye iyi {1}
|
||||
apps/frappe/frappe/utils/data.py,{0} or {1},{0} cyangwa {1}
|
||||
apps/frappe/frappe/utils/data.py,{0} and {1},{0} na {1}
|
||||
apps/frappe/frappe/desk/doctype/desktop_icon/desktop_icon.py,{0} not found,{0} ntayihari
|
||||
apps/frappe/frappe/utils/csvutils.py,{0} is required,{0} ningombwa
|
||||
{0} is mandatory,{0} ningombwa,
|
||||
{0} and {1},{0} na {1},
|
||||
{0} is saved,{0} yabitswe,
|
||||
{0} not found,{0} ntayihari,
|
||||
{0} or {1},{0} cyangwa {1},
|
||||
{0} {1} added,{0} {1} Igiyemo,
|
||||
{0} {1} already exists,{0} {1} Isanzwe Irimo,
|
||||
{0} {1} not found,{0} {1} Ntayihari,
|
||||
{0} {1} to {2},{0} {1} kugeza kuri {2},
|
||||
{0} is required,{0} ningombwa,
|
||||
|
|
|
|||
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -1,459 +1,458 @@
|
|||
apps/frappe/frappe/desk/doctype/todo/todo_list.js,Assigned By Me,Dodijelio drugima
|
||||
apps/frappe/frappe/desk/doctype/note/note_list.js,Notes,Bilješke
|
||||
DocType: Desktop Icon,_doctype,_doctype
|
||||
DocType: Desktop Icon,List,Lista
|
||||
DocType: Report,Report Type,Vrsta izvještaja
|
||||
DocType: System Settings,Session Expiry,Sesija ističe
|
||||
DocType: DocShare,DocShare,Dijeljenje dokumenta
|
||||
apps/frappe/frappe/public/js/frappe/ui/filters/filters.js,Add Filter,Dodaj filter
|
||||
DocType: Address,Contacts,Kontakti
|
||||
apps/frappe/frappe/public/js/frappe/form/save.js,Submitting,Potvrđivanje
|
||||
apps/frappe/frappe/public/js/frappe/form/grid_row_form.js,Editing Row,Izmjena u redu
|
||||
apps/frappe/frappe/public/js/frappe/form/print.js,You are not allowed to print this document,Немате дозволу да штампате овај документ
|
||||
DocType: Auto Repeat,End Date,Datum završetka
|
||||
DocType: ToDo,Allocated To,Dodijeljeno je
|
||||
DocType: Custom DocPerm,Delete,Obriši
|
||||
apps/frappe/frappe/app.py,You do not have enough permissions to complete the action,Немате дозволу да завршите ову акцију.
|
||||
apps/frappe/frappe/public/js/frappe/views/kanban/kanban_view.js,Project,Projekti
|
||||
DocType: ToDo,Due Date,Datum dospijeća
|
||||
apps/frappe/frappe/public/js/frappe/list/list_sidebar_group_by.js,Assigned To,Dodijeljeno prema
|
||||
apps/frappe/frappe/model/rename_doc.py,renamed from {0} to {1},Preimenuj iz {0} u {1}
|
||||
apps/frappe/frappe/public/js/frappe/form/form.js,Submit this document to confirm,Potvrdi ovaj dokument da bi ga zaključio
|
||||
apps/frappe/frappe/utils/bot.py,You can find things by asking 'find orange in customers',"Можете тражити ствари претрагом ""тражи наранџасто у купцима"""
|
||||
DocType: Note Seen By,Note Seen By,Bilješku je vidio
|
||||
apps/frappe/frappe/public/js/frappe/list/list_sidebar.html,Show Tags,Prikaži tagove
|
||||
apps/frappe/frappe/templates/includes/navbar/navbar_login.html,Switch To Desk,Pređi na radnu površinu
|
||||
apps/frappe/frappe/public/js/frappe/dom.js,Confirm,Potvrdi
|
||||
apps/frappe/frappe/public/js/frappe/form/sidebar/assign_to.js,Assign to me,Dodijeljeno meni
|
||||
apps/frappe/frappe/public/js/frappe/roles_editor.js,Clear all roles,Obriši sve role
|
||||
DocType: Address,Sales User,Korisnik prodaje
|
||||
DocType: Custom DocPerm,Set User Permissions,Postavite korisnička prava
|
||||
apps/frappe/frappe/public/js/frappe/ui/filters/filter.js,Between,Između
|
||||
apps/frappe/frappe/custom/doctype/custom_field/custom_field.js,e.g.:,npr:
|
||||
DocType: Country,Country Name,Ime države
|
||||
DocType: Workflow State,Download,Preuzmi
|
||||
apps/frappe/frappe/handler.py,You have been successfully logged out,Успешно сте се одјавили
|
||||
apps/frappe/frappe/website/doctype/web_form/web_form.py,You don't have the permissions to access this document,Немате дозволу да приступите овом документу.
|
||||
DocType: Website Settings,Brand Image,Slika brenda
|
||||
apps/frappe/frappe/utils/bot.py,show,Prikaži
|
||||
DocType: Page,Yes,Da
|
||||
DocType: Custom DocPerm,Role,Uloga
|
||||
apps/frappe/frappe/public/js/frappe/views/reports/report_view.js,Totals,Ukupno
|
||||
apps/frappe/frappe/public/js/frappe/request.js,You do not have enough permissions to access this resource. Please contact your manager to get access.,Немате дозволу да приступите овоме. Молимо јавите се свом менаџеру да добијете приступ.
|
||||
apps/frappe/frappe/public/js/frappe/views/treeview.js,Add Child,Dodaj podređeni
|
||||
apps/frappe/frappe/core/doctype/user/user.py,Invalid Password: ,Pogrešna lozinka:
|
||||
DocType: System Settings,System Settings,Sistemska podešavanja
|
||||
apps/frappe/frappe/printing/page/print_format_builder/print_format_builder.js,You can add dynamic properties from the document by using Jinja templating.,Можете да додате динамичке вредности из документа помоћу Jinja шаблона.
|
||||
DocType: Dashboard Chart,To Date,Do datuma
|
||||
DocType: Chat Profile,Offline,Van mreže (offline)
|
||||
DocType: Assignment Rule,System Manager,Menadžer sistema
|
||||
apps/frappe/frappe/www/update-password.html,New Password,Nova lozinka
|
||||
apps/frappe/frappe/desk/query_report.py,You don't have permission to get a report on: {0},Немате дозволу да добијете извештај о: {0}
|
||||
DocType: User,Middle Name (Optional),Srednje ime (opciono)
|
||||
apps/frappe/frappe/public/js/frappe/form/templates/set_sharing.html,Can Share,Može dijeliti
|
||||
apps/frappe/frappe/core/page/dashboard/dashboard.js,Dashboard,Nadzorna ploča
|
||||
DocType: Contact,Last Name,Prezime
|
||||
apps/frappe/frappe/public/js/frappe/views/pageview.js,Sorry! You are not permitted to view this page.,Niste autorizovani za prikaz ove stranice.
|
||||
DocType: Web Form,Success Message,Poruka o uspjehu
|
||||
apps/frappe/frappe/public/js/frappe/form/sidebar/form_sidebar.js,{0} created this {1},{1} {0} je kreirao/la ovo.
|
||||
DocType: Chat Profile,Online,Na mreži
|
||||
DocType: Auto Repeat,Subject,Naslov
|
||||
apps/frappe/frappe/public/js/frappe/views/file/file_view.js,Enter folder name,Unesi naziv foldera
|
||||
DocType: Workflow State,Tags,Tagovi
|
||||
DocType: Notification Log,Assignment,Dodjeljivanje
|
||||
DocType: Workflow State,move,Kretanje
|
||||
DocType: Language,Language,Jezik
|
||||
apps/frappe/frappe/public/js/frappe/form/form.js,Permanently Submit {0}?,Trajno potvrdi {0} ?
|
||||
DocType: Address,Maintenance User,Korisnik održavanja
|
||||
DocType: Contact,Image,Slika
|
||||
apps/frappe/frappe/public/js/frappe/model/model.js,Rename {0},Preimenuj {0}
|
||||
apps/frappe/frappe/public/js/frappe/socketio_client.js,File Upload,Dodavanje fajla
|
||||
DocType: Report,Add Total Row,Dodaj red ukupno bez PDV-a
|
||||
,Setup Wizard,Čarobnjak za postavke
|
||||
DocType: Dashboard Chart,From Date,Od datuma
|
||||
DocType: Data Import,Amended From,Izmijenjena iz
|
||||
apps/frappe/frappe/desk/doctype/desktop_icon/desktop_icon.py,Desktop Icon already exists,Ikona na radnoj površini već postoji
|
||||
DocType: Comment,Attachment Removed,Prilog uklonjen
|
||||
DocType: Assignment Rule,Users,Korisnici
|
||||
DocType: Data Import,Import Log,Log uvoza
|
||||
apps/frappe/frappe/public/js/frappe/form/controls/comment.js,Add a comment,Dodaj komentar
|
||||
apps/frappe/frappe/public/js/frappe/model/model.js,Permanently delete {0}?,Trajno obriši dokument {0} ?
|
||||
DocType: Custom DocPerm,Export,Izvezi
|
||||
DocType: Comment,Cancelled,Otkazan
|
||||
DocType: Contact,Open,Otvoren
|
||||
apps/frappe/frappe/public/js/frappe/web_form/webform_script.js,You are not permitted to access this page.,Немате дозволу да приступите овој страници.
|
||||
DocType: File,Attached To DocType,Priložen u vrstu dokumetu
|
||||
apps/frappe/frappe/public/js/frappe/request.js,You are not connected to Internet. Retry after sometime.,Нисте повезани са Интернетом. Покушајте касније.
|
||||
apps/frappe/frappe/public/js/frappe/views/reports/query_report.js,Collapse All,Skupi sve
|
||||
apps/frappe/frappe/config/desk.py,Chat messages and other notifications.,Poruke i ostala obavještenja.
|
||||
apps/frappe/frappe/website/doctype/blog_post/blog_post.py,{0} comments,{0} komentara
|
||||
apps/frappe/frappe/public/js/frappe/file_uploader/FilePreview.vue,Upload Failed,Dodavanje priloga neuspješno
|
||||
apps/frappe/frappe/public/js/frappe/list/list_view.js,Customize,Prilagodite
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager.js,Users with role {0}:,Korisnici sa rolom {0} :
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager.js,Did not add,Nije dodato
|
||||
apps/frappe/frappe/config/desk.py,Files,Fajlovi
|
||||
DocType: Communication,Opened,Otvoreno
|
||||
apps/frappe/frappe/desk/reportview.py,No Tags,Nema tag-ova
|
||||
DocType: Workflow State,picture,Slika
|
||||
DocType: Workflow State,Edit,Izmijeni
|
||||
apps/frappe/frappe/public/js/frappe/ui/toolbar/search_utils.js,New {0},Novi {0}
|
||||
apps/frappe/frappe/email/doctype/email_group/email_group.js,View,Pogledaj
|
||||
DocType: Notification,Print Settings,Podešavanje štampanja
|
||||
apps/frappe/frappe/public/js/frappe/ui/toolbar/navbar.html,Search or type a command,Pretražite ili otkucajte komandu
|
||||
DocType: About Us Team Member,Image Link,Link za sliku
|
||||
DocType: Letter Head,Default Letter Head,Podrazumijevano zaglavlje
|
||||
DocType: Workflow State,folder-close,Folder-zatvori
|
||||
DocType: List Filter,Filter Name,Naziv filtera
|
||||
DocType: Calendar View,Subject Field,Polje naslova
|
||||
apps/frappe/frappe/core/doctype/file/test_file.py,Home/Test Folder 1,Naslovna / Test Folder1
|
||||
DocType: Chat Token,Country,Država
|
||||
apps/frappe/frappe/public/js/frappe/views/file/file_view.js,New Folder,Novi folder
|
||||
DocType: Communication,Email,Email
|
||||
apps/frappe/frappe/public/js/frappe/form/save.js,Mandatory fields required in {0},Obavezna polja koja se moraju unijeti u dijelu {0}
|
||||
DocType: Chat Message Attachment,Attachment,Prilog
|
||||
apps/frappe/frappe/public/js/frappe/ui/filters/filter.js,Not equals,Nije jednak
|
||||
DocType: Help Article,Knowledge Base Contributor,Saradnik zs bazu znanja
|
||||
apps/frappe/frappe/public/js/frappe/ui/toolbar/awesome_bar.js,Help on Search,Pomoć oko pretrage
|
||||
apps/frappe/frappe/public/js/frappe/ui/page.html,Menu,Meni
|
||||
apps/frappe/frappe/public/js/frappe/views/inbox/inbox_view.js,No {0} mail,{0} email nije nađen
|
||||
DocType: Email Account,Attachment Limit (MB),Prilog limitiran na (MB)
|
||||
DocType: Error Snapshot,Error Snapshot,Snimak grešaka (snapshot)
|
||||
apps/frappe/frappe/public/js/frappe/model/model.js,Document Status,Status dokumenta
|
||||
apps/frappe/frappe/public/js/frappe/form/save.js,Saving,Čuvanje
|
||||
DocType: About Us Settings,Website,Web sajt
|
||||
apps/frappe/frappe/config/core.py,Script or Query reports,Skripte ili query izvještaji
|
||||
apps/frappe/frappe/utils/file_manager.py,Added {0},Dodatо {0}
|
||||
apps/frappe/frappe/public/js/frappe/views/kanban/kanban_board.js,You are not allowed to create columns,Немате дозволу да правите колоне
|
||||
apps/frappe/frappe/public/js/frappe/list/list_sidebar.html,Gantt,Gantogram
|
||||
DocType: Contact,First Name,Ime
|
||||
apps/frappe/frappe/templates/emails/new_user.html,You can also copy-paste this link in your browser,Можете и да копирате и налепите овај линк у свој претраживач.
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html,User Permissions,Prava pristupa korisnika
|
||||
DocType: Contact,More Information,Više informacija
|
||||
apps/frappe/frappe/email/doctype/newsletter/newsletter.py,Confirm Your Email,Potvrdi tvoj E mail
|
||||
DocType: Auto Repeat,Accounts Manager,Menadžer računa
|
||||
apps/frappe/frappe/desk/doctype/dashboard_chart/dashboard_chart.js,Created On,Kreirano
|
||||
DocType: Email Account,Yandex.Mail,Yandex.Mail
|
||||
apps/frappe/frappe/website/doctype/blog_post/blog_post.py,1 comment,1 komentar
|
||||
apps/frappe/frappe/public/js/frappe/form/multi_select_dialog.js,Date Range,Opseg datuma
|
||||
apps/frappe/frappe/public/js/frappe/views/treeview.js,Expand All,Proširi sve
|
||||
apps/frappe/frappe/website/doctype/web_form/web_form.py,You are not allowed to update this Web Form Document,Немате дозволу да ажурирате овај Документ Веб Форме
|
||||
apps/frappe/frappe/public/js/frappe/ui/toolbar/search_utils.js,New,Novi
|
||||
apps/frappe/frappe/core/doctype/file/file.py,Cannot delete Home and Attachments folders,Ne možete brisati foldere Naslovna i prilozi
|
||||
apps/frappe/frappe/core/doctype/data_import/data_import.js,Attach File,Priloži dokument
|
||||
DocType: ToDo,High,Visok
|
||||
apps/frappe/frappe/www/printview.py,No {0} permission,{0} Nema dozvolu
|
||||
apps/frappe/frappe/public/js/frappe/list/list_view.js,Delete {0} items permanently?,Trajno obriši stavke{0} ?
|
||||
DocType: Address,Postal Code,Poštanski broj
|
||||
apps/frappe/frappe/workflow/doctype/workflow/workflow_list.js,Not active,Nije aktivna
|
||||
apps/frappe/frappe/public/js/frappe/views/kanban/kanban_column.html,Add,Dodaj
|
||||
DocType: Email Account,Add Signature,Dodaj potpis
|
||||
apps/frappe/frappe/public/js/frappe/list/list_filter.js,Save Filter,Sačuvaj filter
|
||||
DocType: Deleted Document,New Name,Novi naziv
|
||||
DocType: User,Enabled,Aktivan
|
||||
DocType: ToDo,ToDo,To Do
|
||||
apps/frappe/frappe/public/js/frappe/ui/toolbar/search_utils.js,Report {0},Izvještaj {0}
|
||||
apps/frappe/frappe/public/js/frappe/views/communication.js,New Email,Novi email
|
||||
apps/frappe/frappe/public/js/frappe/views/reports/report_view.js,Pick Columns,Odaberi kolone
|
||||
DocType: Footer Item,Company,Preduzeće
|
||||
DocType: Address,Purchase User,Korisnik u nabavci
|
||||
apps/frappe/frappe/public/js/frappe/list/list_sidebar_group_by.js,Created By,Kreirao
|
||||
apps/frappe/frappe/public/js/frappe/views/reports/report_view.js,Export Report: {0},Izvoz izvještaja: {0}
|
||||
apps/frappe/frappe/public/js/frappe/form/grid_row_form.js,Insert Below,Ubacite ispod
|
||||
apps/frappe/frappe/public/js/frappe/list/list_view.js,Assign To,Dodijeli
|
||||
apps/frappe/frappe/www/update-password.html,Invalid Password,Pogrešna lozinka
|
||||
apps/frappe/frappe/integrations/doctype/dropbox_settings/dropbox_settings.py,Dropbox Setup,Dropbox podešavanje
|
||||
apps/frappe/frappe/public/js/frappe/form/sidebar/share.js,Share {0} with,Podijeli {0} sa
|
||||
,Addresses And Contacts,Adrese i kontakti
|
||||
DocType: Auto Repeat,Accounts User,Računi korisnik
|
||||
DocType: File,File Name,Naziv dokumenta
|
||||
DocType: Has Role,Has Role,Ima ulogu
|
||||
apps/frappe/frappe/public/js/frappe/form/templates/form_sidebar.html,Shared With,Podijeljeno sa
|
||||
DocType: Contact,Contact,Kontakt
|
||||
apps/frappe/frappe/desk/page/activity/activity_row.html,{0} {1} to {2},{0} {1} do {2}
|
||||
apps/frappe/frappe/templates/includes/comments/comments.html,Add Comment,Dodaj komentar
|
||||
DocType: Error Log,Title,Naslov
|
||||
apps/frappe/frappe/public/js/frappe/form/templates/form_sidebar.html,Assign,Dodijeli
|
||||
DocType: Note,Note,Bilješke
|
||||
apps/frappe/frappe/public/js/frappe/list/list_view.js,No {0} found,{0} nije nadjen
|
||||
DocType: Email Group,Newsletter Manager,Menadžer newsletter-a
|
||||
apps/frappe/frappe/core/doctype/communication/communication.js,Add Contact,Dodaj kontakt
|
||||
apps/frappe/frappe/core/doctype/version/version.js,Show all Versions,Prikaži sve verzije
|
||||
apps/frappe/frappe/public/js/frappe/form/grid_row_form.js,Insert Above,Ubacite iznad
|
||||
apps/frappe/frappe/core/doctype/version/version_view.html,New Value,Nova vrijednost
|
||||
apps/frappe/frappe/templates/pages/integrations/payment-failed.html,Payment Failed,Plaćanje nije uspjelo
|
||||
apps/frappe/frappe/desk/doctype/todo/todo_list.js,Open {0},Otvoren {0}
|
||||
DocType: Customize Form,Sort Order,Sortiranje
|
||||
DocType: DocField,Password,Lozinka
|
||||
DocType: Post,Post,Pošalji
|
||||
DocType: DocType,Image Field,Polje sa slikom
|
||||
apps/frappe/frappe/public/js/frappe/form/sidebar/share.js,Shared with {0},Podijeljeno sa {0}
|
||||
apps/frappe/frappe/public/js/frappe/form/toolbar.js,Duplicate,Dupliraj
|
||||
apps/frappe/frappe/custom/doctype/customize_form/customize_form.py,You cannot unset 'Read Only' for field {0},"Не можете искључити ""Само за читање"" за поље {0}"
|
||||
DocType: Blog Category,Blogger,Blogger
|
||||
DocType: User,Change Password,Promjena lozinke
|
||||
apps/frappe/frappe/public/js/frappe/views/treeview.js,View List,Prikaz liste
|
||||
DocType: Communication,Delivery Status,Status isporuke
|
||||
DocType: Translation,Saved,Sačuvano
|
||||
DocType: Workflow State,share-alt,Podijeli-alt
|
||||
apps/frappe/frappe/public/js/frappe/file_uploader/FileUploader.vue,Web Link,Url adresa
|
||||
DocType: Web Form,Amount,Vrijednost
|
||||
,Address and Contacts,Adresa i kontakti
|
||||
apps/frappe/frappe/config/desk.py,Event and other calendars.,Događaji i ostali kalendari.
|
||||
apps/frappe/frappe/public/js/frappe/form/controls/comment.js,Ctrl+Enter to add comment,Ctrl + enter da dodate komentar
|
||||
DocType: Workflow State,Comment,Komentar
|
||||
DocType: User,Timezone,Vremenska zona
|
||||
DocType: Workflow State,Refresh,Osvježi
|
||||
apps/frappe/frappe/desk/query_report.py,You don't have access to Report: {0},Немате дозволу да приступите Извештају: {0}
|
||||
apps/frappe/frappe/website/doctype/website_theme/website_theme.py,You are not allowed to delete a standard Website Theme,Немате дозволу за брисање стандардне Вебсајт Теме
|
||||
apps/frappe/frappe/core/doctype/file/test_file.py,Home/Test Folder 2,Nalovna/ Test Folder2
|
||||
DocType: Contact Us Settings,Email ID,Email adresa
|
||||
DocType: Auto Repeat,Status,Status
|
||||
apps/frappe/frappe/desk/query_report.py,Report {0} is disabled,Izvještaj {0} јe onemogućen
|
||||
apps/frappe/frappe/config/desktop.py,Tools,Alati
|
||||
DocType: Comment,Deleted,Obrisan
|
||||
DocType: System Settings,Setup Complete,Podešavanje završeno
|
||||
apps/frappe/frappe/core/doctype/user/user.js,Reset Password,Resetuju lozinku
|
||||
DocType: Contact,Salutation,Titula
|
||||
DocType: Activity Log,Date,Datum
|
||||
,Desktop,Radna površina
|
||||
apps/frappe/frappe/public/js/frappe/form/templates/set_sharing.html,Share this document with,Podijelite ovaj dokument sa
|
||||
apps/frappe/frappe/templates/pages/integrations/braintree_checkout.html,Pay,Plati
|
||||
apps/frappe/frappe/public/js/frappe/list/list_sidebar.html,Images,Slike
|
||||
,Document Share Report,Izvještaj o dijeljenim dokumentima
|
||||
apps/frappe/frappe/public/js/frappe/form/sidebar/form_viewers.js,{0} is currently viewing this document,{0} trenutno gleda ovaj dokumenat
|
||||
apps/frappe/frappe/public/js/frappe/list/list_sidebar.html,Tree,Stablo
|
||||
DocType: Chat Message,Type,Tip
|
||||
DocType: DocField,Attach Image,Dodajte sliku
|
||||
DocType: Custom DocPerm,Submit,Potvrdi
|
||||
apps/frappe/frappe/public/js/frappe/form/save.js,Missing Fields,Polja koja nisu unešena
|
||||
DocType: Website Settings,Brand,Brend
|
||||
apps/frappe/frappe/public/js/frappe/chat.js,You don't have any messages yet.,Још увек немате порука.
|
||||
DocType: Email Queue,Attachments,Prilozi
|
||||
DocType: Contact,Sales Manager,Menadžer prodaje
|
||||
DocType: Report,Report Manager,Menadžer za izvještaje
|
||||
DocType: Desktop Icon,Desktop Icon,Ikone na radnoj površini
|
||||
apps/frappe/frappe/public/js/frappe/form/multi_select_dialog.js,Get Items,Dodaj stavke
|
||||
apps/frappe/frappe/desk/doctype/dashboard_chart/dashboard_chart.js,Last Modified On,Poslednji put izmijenjeno
|
||||
apps/frappe/frappe/public/js/frappe/form/save.js,"Mandatory fields required in table {0}, Row {1}","Obavezna polja koja se moraju unijeti u tabeli {0}, Red {1}"
|
||||
apps/frappe/frappe/public/js/frappe/form/link_selector.js,You can use wildcard %,Можете да користите џокер %
|
||||
apps/frappe/frappe/public/js/frappe/form/footer/timeline.js,Added,Dodato
|
||||
DocType: Workflow,Is Active,Je aktivan
|
||||
apps/frappe/frappe/www/login.html,Forgot Password,Zaboravili ste lozinku
|
||||
DocType: Page,No,Ne
|
||||
apps/frappe/frappe/public/js/frappe/views/reports/report_view.js,New Report name,Novi naziv izvještaja
|
||||
apps/frappe/frappe/www/login.py,Mobile Number,Mobilni br. telefona
|
||||
apps/frappe/frappe/public/js/frappe/model/indicator.js,Not Saved,Nije sačuvano
|
||||
apps/frappe/frappe/public/js/frappe/views/interaction.js,Add Attachment,Dodaj prilog
|
||||
apps/frappe/frappe/public/js/frappe/views/gantt/gantt_view.js,Week,Nedelja
|
||||
DocType: Activity Log,Full Name,Puno ime
|
||||
apps/frappe/frappe/public/js/frappe/form/quick_entry.js,Edit in full page,Izmijeni u punoj strani
|
||||
apps/frappe/frappe/public/js/frappe/form/form.js,Permanently Cancel {0}?,Trajno otkaži {0} ?
|
||||
apps/frappe/frappe/core/doctype/data_export/exporter.py,Notes:,Bilješke :
|
||||
apps/frappe/frappe/core/doctype/data_import_beta/data_import_beta.js,Save,Sačuvaj
|
||||
apps/frappe/frappe/public/js/frappe/views/file/file_view.js,File Manager,Fajlovi
|
||||
apps/frappe/frappe/desk/doctype/bulk_update/bulk_update.py,; not allowed in condition,; није дозвољенa у услову
|
||||
DocType: File,Folder,Folder
|
||||
apps/frappe/frappe/core/doctype/data_import/data_import.js,Help,Pomoć
|
||||
apps/frappe/frappe/desk/page/setup_wizard/setup_wizard.js,Attach Your Picture,Priložite svoju fotografiju
|
||||
DocType: Assignment Rule,Disabled,Neaktivni
|
||||
DocType: Communication,Email Account,Email nalog
|
||||
apps/frappe/frappe/public/js/frappe/form/grid.js,Add Multiple,Dodaj više
|
||||
DocType: Custom DocPerm,Import,Uvoz
|
||||
DocType: User,Security Settings,Bezbjedonosna podešavanja
|
||||
apps/frappe/frappe/public/js/frappe/form/multi_select_dialog.js,Search term,Pretraga
|
||||
apps/frappe/frappe/www/login.py,Email Address,Email adresa
|
||||
apps/frappe/frappe/public/js/frappe/form/grid_row_form.js,Ctrl + Up,Ctrl + up
|
||||
DocType: Comment,Assigned,Dodijeljeno
|
||||
DocType: Desktop Icon,_report,_izvještaj
|
||||
apps/frappe/frappe/config/settings.py,Restore or permanently delete a document.,Vrati ili trajno obriši dokument.
|
||||
DocType: Comment,Website Manager,Menadžer za web sajt
|
||||
DocType: GCalendar Settings,State,Država (USA)
|
||||
DocType: Activity Log,Closed,Zatvoreno
|
||||
apps/frappe/frappe/core/doctype/has_role/has_role.py,User '{0}' already has the role '{1}',Korisnik '{0}' već sarži rolu '{1}'
|
||||
apps/frappe/frappe/public/js/frappe/list/list_view.js,Create a new {0},Kreirajte {0}
|
||||
apps/frappe/frappe/core/page/dashboard/dashboard.js,Loading...,Učitavanje ...
|
||||
apps/frappe/frappe/public/js/frappe/form/sidebar/form_sidebar.js,{0} edited this {1},{1} {0} je izmijenio/la ovo
|
||||
DocType: Error Log,Error Log,Log grešaka
|
||||
DocType: Assignment Rule,Description,Opis
|
||||
DocType: Newsletter,Newsletter,Newsletter
|
||||
apps/frappe/frappe/desk/moduleview.py,Standard Reports,Standardni izvještaji
|
||||
apps/frappe/frappe/public/js/frappe/form/templates/form_sidebar.html,Change,Kusur
|
||||
apps/frappe/frappe/templates/pages/integrations/payment-success.html,Payment Success,Plaćanje uspješno
|
||||
DocType: User,Reset Password Key,Resetuj ključ lozinke
|
||||
,Activity,Aktivnost
|
||||
DocType: Comment,Submitted,Potvrđen
|
||||
DocType: File,Is Folder,Da li je Folder
|
||||
DocType: Page,Roles,Role
|
||||
apps/frappe/frappe/email/doctype/newsletter/newsletter.py,You are not permitted to view the newsletter.,Немате дозволу да видите овај билтен.
|
||||
DocType: Auto Repeat,Active,Aktivan
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html,"You can change Submitted documents by cancelling them and then, amending them.",Можете да измените потврђене документе тако што ћете их поништити а затим изменити.
|
||||
DocType: Workflow State,Calendar,Kalendar
|
||||
apps/frappe/frappe/public/js/frappe/views/file/file_view.js,Import Zip,Uvoz zip arhive
|
||||
DocType: Custom DocPerm,Amend,Izmijeni
|
||||
apps/frappe/frappe/public/js/frappe/form/layout.js,Hide Details,Sakrij detalje
|
||||
apps/frappe/frappe/core/doctype/version/version_view.html,Success,Uspješno
|
||||
apps/frappe/frappe/core/doctype/data_export/exporter.py,Data Import Template,Šablon za uvoz podataka
|
||||
apps/frappe/frappe/public/js/frappe/form/formatters.js,{0} to {1},{0} do {1}
|
||||
DocType: Web Form,Payments,Plaćanja
|
||||
apps/frappe/frappe/core/doctype/communication/communication.js,Close,Zatvori
|
||||
,LeaderBoard,Tabla
|
||||
apps/frappe/frappe/public/js/frappe/web_form/web_form_list.js,Sr,Rb
|
||||
DocType: Contact,Purchase Master Manager,Direktor nabavke
|
||||
DocType: User,Last Login,Poslednja prijava
|
||||
apps/frappe/frappe/core/doctype/file/file.py,Folder {0} is not empty,Folder {0} nije prazan
|
||||
DocType: Custom DocPerm,Report,Izvještaj
|
||||
apps/frappe/frappe/utils/response.py,You don't have permission to access this file,Немате дозволу да приступите овој датотеци.
|
||||
DocType: Communication,User Tags,Korisnički tagovi
|
||||
DocType: User,Email Settings,Podešavanje emaila
|
||||
,Role Permissions Manager,Menadžer prava pristupa rolama
|
||||
apps/frappe/frappe/public/js/frappe/form/footer/timeline.js,Delete comment?,Obriši komentar?
|
||||
DocType: Contact,Purchase Manager,Menadžer nabavke
|
||||
DocType: About Us Settings,About Us Settings,Podešavanja o nama
|
||||
apps/frappe/frappe/website/doctype/website_settings/website_settings.js,View Website,Pogledaj sajt
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html,Add a New Role,Dodaj novu rolu
|
||||
apps/frappe/frappe/public/js/frappe/roles_editor.js,Add all roles,Dodaj sve role
|
||||
apps/frappe/frappe/public/js/frappe/ui/toolbar/navbar.html,Reload,Učitaj ponovo
|
||||
DocType: ToDo,Low,Nizak
|
||||
DocType: Auto Repeat,Completed,Završeno
|
||||
apps/frappe/frappe/public/js/frappe/ui/filters/edit_filter.html,Apply,Primijeni
|
||||
apps/frappe/frappe/public/js/frappe/utils/pretty_date.js,Yesterday,Juče
|
||||
apps/frappe/frappe/desk/query_report.py,Total,Ukupno
|
||||
apps/frappe/frappe/public/js/frappe/views/reports/report_view.js,Show Totals,Prikaži ukupno
|
||||
apps/frappe/frappe/public/js/frappe/ui/messages.js,Enter your password,Unesite lozinku
|
||||
apps/frappe/frappe/public/js/frappe/ui/filters/filters.js,Like,Kao
|
||||
apps/frappe/frappe/public/js/frappe/views/reports/query_report.js,Export Report: ,Izvoz izvještaja:
|
||||
apps/frappe/frappe/public/js/frappe/list/list_sidebar.html,New Kanban Board,Nova Kanban prikaz
|
||||
DocType: Customize Form,Image View,Prikaz slike
|
||||
apps/frappe/frappe/desk/doctype/event/event.py,Events In Today's Calendar,Događaji u kalendaru na današnji dan.
|
||||
DocType: Workflow State,remove,Ukloni
|
||||
DocType: Auto Repeat,Start Date,Datum početka
|
||||
apps/frappe/frappe/email/doctype/email_group/email_group.js,New Newsletter,Novi newsletter
|
||||
DocType: Auto Repeat,Message,Poruka
|
||||
apps/frappe/frappe/www/login.html,Back to Login,Vrati se na prijavu
|
||||
apps/frappe/frappe/public/js/frappe/list/list_sidebar.html,Kanban,Kanban
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager.js,Loading,Učitavanje
|
||||
DocType: Auto Repeat,Weekly,Nedeljni
|
||||
apps/frappe/frappe/public/js/frappe/roles_editor.js,Role Permissions,Prava pristupa rolama
|
||||
DocType: Communication,From,Od
|
||||
apps/frappe/frappe/core/doctype/file/test_file.py,Home/Test Folder 1/Test Folder 3,Naslovna / Test Folder1 / Test Folder3
|
||||
DocType: Workflow State,share,Podijeli
|
||||
apps/frappe/frappe/core/doctype/file/file.py,Same file has already been attached to the record,Isti fajl je već dodijeljen nekom zapisu
|
||||
apps/frappe/frappe/public/js/frappe/form/controls/link.js,Advanced Search,Napredna pretraga
|
||||
DocType: Communication,Error,Greška
|
||||
DocType: Address,Warehouse,Skladište
|
||||
DocType: Workflow State,Upload,Priloži
|
||||
apps/frappe/frappe/custom/doctype/customize_form/customize_form.py,You can't set 'Translatable' for field {0},Не можете поставити 'Може се превести' за поље {0}
|
||||
DocType: Workflow,States,Države
|
||||
apps/frappe/frappe/desk/page/user_profile/user_profile.js,Go,Traži
|
||||
apps/frappe/frappe/public/js/frappe/utils/pretty_date.js,{0} days ago,prije {0} dana
|
||||
apps/frappe/frappe/public/js/frappe/views/reports/report_view.js,Y Axis Fields,Поља на Y-oси
|
||||
apps/frappe/frappe/public/js/frappe/form/grid.js,Add Row,Dodaj red
|
||||
DocType: File,Is Home Folder,Da li je folder naslovna
|
||||
apps/frappe/frappe/desk/doctype/todo/todo_list.js,To Do,To Do
|
||||
apps/frappe/frappe/public/js/frappe/ui/filters/filter.js,Not In,Nije u
|
||||
apps/frappe/frappe/public/js/frappe/form/sidebar/assign_to.js,Add to To Do,Dodaj u To Do
|
||||
apps/frappe/frappe/public/js/frappe/form/footer/timeline.js,Created,Kreirano
|
||||
apps/frappe/frappe/public/js/frappe/form/link_selector.js,Added {0} ({1}),Dodato {0} ({1})
|
||||
DocType: OAuth Client, Advanced Settings,Napredna podešavanja
|
||||
DocType: Address,Address,Adresa
|
||||
DocType: Email Account,Email Addresses,Email adrese
|
||||
apps/frappe/frappe/public/js/frappe/views/treeview.js,{0} Tree,{0} stablo
|
||||
apps/frappe/frappe/public/js/frappe/ui/filters/filter.js,Equals,Jednak
|
||||
DocType: Address,Address Line 1,Adresa 1
|
||||
apps/frappe/frappe/public/js/frappe/views/kanban/kanban_board.html,Add a column,Dodaj kolonu
|
||||
,Background Jobs,Pozadinski procesi
|
||||
DocType: Activity Log,Login,Prijava
|
||||
DocType: Chat Message,Chat,Poruke
|
||||
apps/frappe/frappe/config/settings.py,Deleted Documents,Obrisana dokumenta
|
||||
apps/frappe/frappe/public/js/frappe/form/print.js,With Letter head,Sa zaglavljem
|
||||
apps/frappe/frappe/public/js/frappe/ui/filters/filters.js,Not Like,Nije kao
|
||||
DocType: DocType,Setup,Podešavanje
|
||||
DocType: Data Import,Import Status,Status uvoza
|
||||
apps/frappe/frappe/core/doctype/user/user.js,Create User Email,Kreiraj korisnički Email
|
||||
DocType: Address,Address Line 2,Adresa 2
|
||||
apps/frappe/frappe/public/js/frappe/form/footer/timeline.js,{0} from {1} to {2},{0} od {1} za {2}
|
||||
apps/frappe/frappe/public/js/frappe/model/indicator.js,Draft,Na čekanju
|
||||
DocType: Contact,Maintenance Manager,Menadžer održavanja
|
||||
apps/frappe/frappe/public/js/frappe/form/grid_row_form.js,Ctrl + Down,Ctrl + down
|
||||
DocType: Data Import,Data Import,Uvoz podataka
|
||||
apps/frappe/frappe/desk/reportview.py,{0} is saved,{0} je sačuvan
|
||||
DocType: DocField,Datetime,Datum vrijeme
|
||||
DocType: Email Group,Email Group,Email grupa
|
||||
apps/frappe/frappe/core/doctype/data_export/exporter.py,You can only upload upto 5000 records in one go. (may be less in some cases),Можете поднети највише 5000 записа одједном. (некада може бити и мање)
|
||||
apps/frappe/frappe/public/js/frappe/utils/utils.js,{0} Report,Izvještaj {0}
|
||||
apps/frappe/frappe/public/js/frappe/list/list_sidebar.html,Reports,Izvještaji
|
||||
DocType: Post,Comments,Komentari
|
||||
DocType: Workflow State,folder-open,folder-otvori
|
||||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html,You can use Customize Form to set levels on fields.,Можете користити Прилагоди Формулар да подесите нивое на пољима.
|
||||
apps/frappe/frappe/public/js/frappe/model/model.js,Merge with existing,Spoji sa postojećim
|
||||
DocType: Print Settings,Send Print as PDF,Štampaj u PDF
|
||||
apps/frappe/frappe/public/js/frappe/ui/toolbar/navbar.html,My Settings,Moja podešavanja
|
||||
apps/frappe/frappe/public/js/frappe/ui/toolbar/search_utils.js,Email Inbox,Email primljene
|
||||
apps/frappe/frappe/core/page/dashboard/dashboard.js,{0} List,{0} Lista
|
||||
DocType: Report,Letter Head,Zaglavlje
|
||||
DocType: Workflow State,Home,Naslovna
|
||||
apps/frappe/frappe/public/js/frappe/list/list_filter.js,Duplicate Filter Name,Ime filtera već postoji
|
||||
apps/frappe/frappe/config/desktop.py,Users and Permissions,Korisnici i dozvole
|
||||
apps/frappe/frappe/public/js/frappe/desk.js,Session Expired,Sesija je istekla
|
||||
DocType: Communication,Received,Primljeno
|
||||
DocType: User,Login After,Prijava nakon
|
||||
apps/frappe/frappe/public/js/frappe/views/reports/query_report.js,PDF,PDF
|
||||
DocType: Contact,Mobile No,Mobilni br.
|
||||
apps/frappe/frappe/public/js/frappe/ui/sort_selector.js,Most Used,Najviše korišćeno
|
||||
apps/frappe/frappe/email/doctype/email_account/email_account.js,"You are selecting Sync Option as ALL, It will resync all \
|
||||
read as well as unread message from server. This may also cause the duplication\
|
||||
of Communication (emails).","Постављате Начин усклађивања на СВЕ, што ће поново усклатиди све прочитане и непрочитане поруке са сервера. Ово може изазвати дупликате комуникација (мејлова)."
|
||||
apps/frappe/frappe/utils/data.py,{0} or {1},{0} {1} ili
|
||||
DocType: File,Is Attachments Folder,Da li je prilog folder
|
||||
DocType: Contact,Gender,Pol
|
||||
apps/frappe/frappe/templates/pages/integrations/payment-cancel.html,Payment Cancelled,Plaćenje otkazano
|
||||
DocType: DocField,Report Hide,Sakrij izvještaj
|
||||
apps/frappe/frappe/public/js/frappe/views/reports/query_report.js,Setup Auto Email,Podešavanje auto e-mail-a
|
||||
apps/frappe/frappe/contacts/doctype/address/address.py,Addresses,Adrese
|
||||
DocType: ToDo,Assigned By,Dodijelio od strane
|
||||
DocType: Contact,All,Svi
|
||||
DocType: Auto Email Report,Report Filters,Filteri na izvještaju
|
||||
apps/frappe/frappe/public/js/frappe/utils/pretty_date.js,{0} months ago,Prije {0} mjeseci
|
||||
DocType: Web Form,Allow Comments,Dozvoli komentare
|
||||
DocType: User,Login Before,Prijava prije
|
||||
apps/frappe/frappe/public/js/frappe/form/sidebar/share.js,Share With,Podijeli sa
|
||||
apps/frappe/frappe/public/js/frappe/model/model.js,Rename,Reimenuj
|
||||
DocType: Address,Links,Linkovi
|
||||
DocType: Contact,Is Primary Contact,Je primarni kontakt
|
||||
apps/frappe/frappe/public/js/frappe/form/sidebar/share.js,Shared with everyone,Podijeljeno sa svima
|
||||
apps/frappe/frappe/core/doctype/error_log/error_log_list.js,Clear Error Logs,Očisti Log grešaka
|
||||
DocType: DocShare,Everyone,Svi
|
||||
apps/frappe/frappe/public/js/frappe/views/treeview.js,You are not allowed to print this report,Немате дозволу да штампате овај извештај
|
||||
,Download Backups,Preuzmi rezervne kopije programa
|
||||
apps/frappe/frappe/public/js/frappe/ui/upload.html,Browse,Izaberi
|
||||
apps/frappe/frappe/public/js/frappe/form/link_selector.js,{0} added,Dodao je {0}
|
||||
apps/frappe/frappe/public/js/frappe/ui/filters/filter.js,Set,Set
|
||||
apps/frappe/frappe/desk/report/todo/todo.py,Assigned To/Owner,Dodijeljeno / Vlasnik
|
||||
apps/frappe/frappe/public/js/frappe/views/reports/report_view.js,Save As,Sačuvaj kao
|
||||
apps/frappe/frappe/model/naming.py,Naming Series mandatory,Vrsta dokumenta je obavezna
|
||||
apps/frappe/frappe/core/doctype/file/test_file.py,Test_Folder,Test_folder
|
||||
apps/frappe/frappe/public/js/frappe/views/reports/report_view.js,Select File Type,Odaberite tip datoteke
|
||||
apps/frappe/frappe/public/js/frappe/views/reports/query_report.js,Add Column,Dodaj kolonu
|
||||
DocType: Comment,Unshared,Nije podijeljen
|
||||
DocType: Help Article,Knowledge Base Editor,Urednik baze znanja
|
||||
DocType: Access Log,Report Name,Naziv izvještaja
|
||||
DocType: System Settings,Session Expiry in Hours e.g. 06:00,Sesija ističe u satima npr. 06:00
|
||||
DocType: Report,Report Builder,Generator izvještaja
|
||||
apps/frappe/frappe/desk/report/todo/todo.py,ID,ID
|
||||
DocType: Custom DocPerm,Cancel,Otkaži
|
||||
DocType: Contact,Sales Master Manager,Direktor prodaje
|
||||
DocType: Kanban Board Column,yellow,жуто
|
||||
DocType: DocField,Currency,Valuta
|
||||
DocType: Workflow State,Print,Štampaj
|
||||
DocType: Workflow State,Primary,Primarni
|
||||
DocType: ToDo,Medium,Srednji
|
||||
DocType: Workflow State,barcode,barkod
|
||||
DocType: Address,Reference,Vezni dokumenti
|
||||
DocType: Custom Role,Custom Role,Prilagođjena rola
|
||||
DocType: Webhook,Naming Series,Vrste dokumenta
|
||||
apps/frappe/frappe/public/js/frappe/form/footer/timeline.js,{0} from {1} to {2} in row #{3},{0} od {1} do {2} na poziciji # {3}
|
||||
DocType: Workflow State,User,Korisnik
|
||||
apps/frappe/frappe/public/js/frappe/desk.js,Please Enter Your Password to Continue,Za nastavak unesite lozinku
|
||||
DocType: File,File Size,Veličina fajla
|
||||
apps/frappe/frappe/public/js/frappe/ui/toolbar/navbar.html,About,O Nama
|
||||
apps/frappe/frappe/public/js/frappe/views/communication.js,You are not allowed to send emails related to this document,Немате дозволу да шаљете мејлове у вези са овим документом
|
||||
Accounts Manager,Menadžer računa,
|
||||
Accounts User,Računi korisnik,
|
||||
Active,Aktivan,
|
||||
Add,Dodaj,
|
||||
Add Comment,Dodaj komentar,
|
||||
Add Row,Dodaj red,
|
||||
Address,Adresa,
|
||||
Address Line 2,Adresa 2,
|
||||
Amended From,Izmijenjena iz,
|
||||
Amount,Vrijednost,
|
||||
Assign,Dodijeli,
|
||||
Assign To,Dodijeli,
|
||||
Attachment,Prilog,
|
||||
Attachments,Prilozi,
|
||||
Cancel,Otkaži,
|
||||
Closed,Zatvoreno,
|
||||
Collapse All,Skupi sve,
|
||||
Contact,Kontakt,
|
||||
Created By,Kreirao,
|
||||
Datetime,Datum vrijeme,
|
||||
Default Letter Head,Podrazumijevano zaglavlje,
|
||||
Delivery Status,Status isporuke,
|
||||
Document Status,Status dokumenta,
|
||||
Email Account,Email nalog,
|
||||
Enabled,Aktivan,
|
||||
End Date,Datum završetka,
|
||||
Error Log,Log grešaka,
|
||||
Expand All,Proširi sve,
|
||||
First Name,Ime,
|
||||
From,Od,
|
||||
Full Name,Puno ime,
|
||||
Gender,Pol,
|
||||
High,Visok,
|
||||
Image,Slika,
|
||||
Image View,Prikaz slike,
|
||||
Import Log,Log uvoza,
|
||||
Is Active,Je aktivan,
|
||||
Last Name,Prezime,
|
||||
Leaderboard,Tabla,
|
||||
Letter Head,Zaglavlje,
|
||||
Low,Nizak,
|
||||
Maintenance Manager,Menadžer održavanja,
|
||||
Maintenance User,Korisnik održavanja,
|
||||
Medium,Srednji,
|
||||
Middle Name (Optional),Srednje ime (opciono),
|
||||
More Information,Više informacija,
|
||||
Move,Kretanje,
|
||||
Not active,Nije aktivna,
|
||||
Notes,Bilješke,
|
||||
Online,Na mreži,
|
||||
Password,Lozinka,
|
||||
Payments,Plaćanja,
|
||||
Primary,Primarni,
|
||||
Print Settings,Podešavanje štampanja,
|
||||
Purchase Manager,Menadžer nabavke,
|
||||
Purchase Master Manager,Direktor nabavke,
|
||||
Purchase User,Korisnik u nabavci,
|
||||
Received,Primljeno,
|
||||
Reference,Vezni dokumenti,
|
||||
Report,Izvještaj,
|
||||
Report Builder,Generator izvještaja,
|
||||
Report Type,Vrsta izvještaja,
|
||||
Reports,Izvještaji,
|
||||
Role,Uloga,
|
||||
Sales Manager,Menadžer prodaje,
|
||||
Sales Master Manager,Direktor prodaje,
|
||||
Sales User,Korisnik prodaje,
|
||||
Salutation,Titula,
|
||||
Saved,Sačuvano,
|
||||
Start Date,Datum početka,
|
||||
Subject,Naslov,
|
||||
Submit,Potvrdi,
|
||||
System Manager,Menadžer sistema,
|
||||
Task,Zadatak,
|
||||
To Date,Do datuma,
|
||||
Tools,Alati,
|
||||
Users,Korisnici,
|
||||
Website,Web sajt,
|
||||
Website Manager,Menadžer za web sajt,
|
||||
Week,Nedelja,
|
||||
Weekly,Nedeljni,
|
||||
1 comment,1 komentar,
|
||||
; not allowed in condition,; није дозвољенa у услову,
|
||||
About,O Nama,
|
||||
About Us Settings,Podešavanja o nama,
|
||||
Add Attachment,Dodaj prilog,
|
||||
Add Column,Dodaj kolonu,
|
||||
Add Contact,Dodaj kontakt,
|
||||
Add Filter,Dodaj filter,
|
||||
Add Signature,Dodaj potpis,
|
||||
Add Total Row,Dodaj red ukupno bez PDV-a,
|
||||
Add a New Role,Dodaj novu rolu,
|
||||
Add a column,Dodaj kolonu,
|
||||
Add a comment,Dodaj komentar,
|
||||
Add all roles,Dodaj sve role,
|
||||
Add to To Do,Dodaj u To Do,
|
||||
Addresses And Contacts,Adrese i kontakti,
|
||||
Advanced Search,Napredna pretraga,
|
||||
Allocated To,Dodijeljeno je,
|
||||
Allow Comments,Dozvoli komentare,
|
||||
Amend,Izmijeni,
|
||||
Apply,Primijeni,
|
||||
Assign to me,Dodijeljeno meni,
|
||||
Assigned,Dodijeljeno,
|
||||
Assigned By,Dodijelio od strane,
|
||||
Assigned By Me,Dodijelio drugima,
|
||||
Assigned To,Dodijeljeno prema,
|
||||
Assigned To/Owner,Dodijeljeno / Vlasnik,
|
||||
Assignment,Dodjeljivanje,
|
||||
Attach Image,Dodajte sliku,
|
||||
Attach Your Picture,Priložite svoju fotografiju,
|
||||
Attached To DocType,Priložen u vrstu dokumetu,
|
||||
Attachment Limit (MB),Prilog limitiran na (MB),
|
||||
Attachment Removed,Prilog uklonjen,
|
||||
Back to Login,Vrati se na prijavu,
|
||||
Background Jobs,Pozadinski procesi,
|
||||
Between,Između,
|
||||
Blogger,Blogger,
|
||||
Brand Image,Slika brenda,
|
||||
Can Share,Može dijeliti,
|
||||
Cannot delete Home and Attachments folders,Ne možete brisati foldere Naslovna i prilozi,
|
||||
Change Password,Promjena lozinke,
|
||||
Chat,Poruke,
|
||||
Chat messages and other notifications.,Poruke i ostala obavještenja.,
|
||||
Clear Error Logs,Očisti Log grešaka,
|
||||
Clear all roles,Obriši sve role,
|
||||
Confirm,Potvrdi,
|
||||
Confirm Your Email,Potvrdi tvoj E mail,
|
||||
Contacts,Kontakti,
|
||||
Country Name,Ime države,
|
||||
Create User Email,Kreiraj korisnički Email,
|
||||
Create a new {0},Kreirajte {0},
|
||||
Created On,Kreirano,
|
||||
Ctrl + Down,Ctrl + down,
|
||||
Ctrl + Up,Ctrl + up,
|
||||
Ctrl+Enter to add comment,Ctrl + enter da dodate komentar,
|
||||
Custom Role,Prilagođjena rola,
|
||||
Data Import,Uvoz podataka,
|
||||
Data Import Template,Šablon za uvoz podataka,
|
||||
Delete comment?,Obriši komentar?,
|
||||
Delete {0} items permanently?,Trajno obriši stavke{0} ?,
|
||||
Deleted,Obrisan,
|
||||
Deleted Documents,Obrisana dokumenta,
|
||||
Desktop Icon,Ikone na radnoj površini,
|
||||
Desktop Icon already exists,Ikona na radnoj površini već postoji,
|
||||
Did not add,Nije dodato,
|
||||
DocShare,Dijeljenje dokumenta,
|
||||
Document Share Report,Izvještaj o dijeljenim dokumentima,
|
||||
Dropbox Setup,Dropbox podešavanje,
|
||||
Duplicate Filter Name,Ime filtera već postoji,
|
||||
Editing Row,Izmjena u redu,
|
||||
Email Addresses,Email adrese,
|
||||
Email Group,Email grupa,
|
||||
Email Settings,Podešavanje emaila,
|
||||
Enter folder name,Unesi naziv foldera,
|
||||
Enter your password,Unesite lozinku,
|
||||
Equals,Jednak,
|
||||
Error Snapshot,Snimak grešaka (snapshot),
|
||||
Event and other calendars.,Događaji i ostali kalendari.,
|
||||
Events in Today's Calendar,Događaji u kalendaru na današnji dan.,
|
||||
Everyone,Svi,
|
||||
Export Report: {0},Izvoz izvještaja: {0},
|
||||
File Name,Naziv dokumenta,
|
||||
File Size,Veličina fajla,
|
||||
File Upload,Dodavanje fajla,
|
||||
Files,Fajlovi,
|
||||
Filter Name,Naziv filtera,
|
||||
Folder,Folder,
|
||||
Folder {0} is not empty,Folder {0} nije prazan,
|
||||
Forgot Password,Zaboravili ste lozinku,
|
||||
Gantt,Gantogram,
|
||||
Has Role,Ima ulogu,
|
||||
Help on Search,Pomoć oko pretrage,
|
||||
Hide details,Sakrij detalje,
|
||||
Home/Test Folder 1,Naslovna / Test Folder1,
|
||||
Home/Test Folder 1/Test Folder 3,Naslovna / Test Folder1 / Test Folder3,
|
||||
Home/Test Folder 2,Nalovna/ Test Folder2,
|
||||
ID,ID,
|
||||
Image Field,Polje sa slikom,
|
||||
Image Link,Link za sliku,
|
||||
Images,Slike,
|
||||
Import,Uvoz,
|
||||
Import Status,Status uvoza,
|
||||
Import Zip,Uvoz zip arhive,
|
||||
Insert Above,Ubacite iznad,
|
||||
Insert Below,Ubacite ispod,
|
||||
Invalid Password,Pogrešna lozinka,
|
||||
Invalid Password:,Pogrešna lozinka:,
|
||||
Is Attachments Folder,Da li je prilog folder,
|
||||
Is Folder,Da li je Folder,
|
||||
Is Home Folder,Da li je folder naslovna,
|
||||
Is Primary Contact,Je primarni kontakt,
|
||||
Kanban,Kanban,
|
||||
Knowledge Base Contributor,Saradnik zs bazu znanja,
|
||||
Knowledge Base Editor,Urednik baze znanja,
|
||||
Language,Jezik,
|
||||
Last Login,Poslednja prijava,
|
||||
Last Modified On,Poslednji put izmijenjeno,
|
||||
Links,Linkovi,
|
||||
List,Lista,
|
||||
Loading,Učitavanje,
|
||||
Login,Prijava,
|
||||
Login After,Prijava nakon,
|
||||
Login Before,Prijava prije,
|
||||
"Mandatory fields required in table {0}, Row {1}","Obavezna polja koja se moraju unijeti u tabeli {0}, Red {1}",
|
||||
Mandatory fields required in {0},Obavezna polja koja se moraju unijeti u dijelu {0},
|
||||
Menu,Meni,
|
||||
Merge with existing,Spoji sa postojećim,
|
||||
Missing Fields,Polja koja nisu unešena,
|
||||
Most Used,Najviše korišćeno,
|
||||
My Settings,Moja podešavanja,
|
||||
Naming Series mandatory,Vrsta dokumenta je obavezna,
|
||||
New Email,Novi email,
|
||||
New Folder,Novi folder,
|
||||
New Kanban Board,Nova Kanban prikaz,
|
||||
New Name,Novi naziv,
|
||||
New Newsletter,Novi newsletter,
|
||||
New Password,Nova lozinka,
|
||||
New Report name,Novi naziv izvještaja,
|
||||
New Value,Nova vrijednost,
|
||||
New {0},Novi {0},
|
||||
Newsletter Manager,Menadžer newsletter-a,
|
||||
No Tags,Nema tag-ova,
|
||||
No {0} found,{0} nije nadjen,
|
||||
No {0} mail,{0} email nije nađen,
|
||||
No {0} permission,{0} Nema dozvolu,
|
||||
Not Equals,Nije jednak,
|
||||
Not In,Nije u,
|
||||
Not Saved,Nije sačuvano,
|
||||
Note Seen By,Bilješku je vidio,
|
||||
Open {0},Otvoren {0},
|
||||
Opened,Otvoreno,
|
||||
PDF,PDF,
|
||||
Payment Cancelled,Plaćenje otkazano,
|
||||
Payment Failed,Plaćanje nije uspjelo,
|
||||
Payment Success,Plaćanje uspješno,
|
||||
Permanently Cancel {0}?,Trajno otkaži {0} ?,
|
||||
Permanently Submit {0}?,Trajno potvrdi {0} ?,
|
||||
Permanently delete {0}?,Trajno obriši dokument {0} ?,
|
||||
Pick Columns,Odaberi kolone,
|
||||
Please Enter Your Password to Continue,Za nastavak unesite lozinku,
|
||||
Post,Pošalji,
|
||||
Postal Code,Poštanski broj,
|
||||
Reload,Učitaj ponovo,
|
||||
Remove,Ukloni,
|
||||
Rename {0},Preimenuj {0},
|
||||
Report Filters,Filteri na izvještaju,
|
||||
Report Hide,Sakrij izvještaj,
|
||||
Report Manager,Menadžer za izvještaje,
|
||||
Report Name,Naziv izvještaja,
|
||||
Report {0},Izvještaj {0},
|
||||
Report {0} is disabled,Izvještaj {0} јe onemogućen,
|
||||
Reset Password,Resetuju lozinku,
|
||||
Reset Password Key,Resetuj ključ lozinke,
|
||||
Restore or permanently delete a document.,Vrati ili trajno obriši dokument.,
|
||||
Role Permissions,Prava pristupa rolama,
|
||||
Roles,Role,
|
||||
Same file has already been attached to the record,Isti fajl je već dodijeljen nekom zapisu,
|
||||
Save As,Sačuvaj kao,
|
||||
Save Filter,Sačuvaj filter,
|
||||
Saving,Čuvanje,
|
||||
Script or Query reports,Skripte ili query izvještaji,
|
||||
Search Term,Pretraga,
|
||||
Search or type a command,Pretražite ili otkucajte komandu,
|
||||
Security Settings,Bezbjedonosna podešavanja,
|
||||
Select File Type,Odaberite tip datoteke,
|
||||
Send Print as PDF,Štampaj u PDF,
|
||||
Session Expired,Sesija je istekla,
|
||||
Session Expiry,Sesija ističe,
|
||||
Session Expiry in Hours e.g. 06:00,Sesija ističe u satima npr. 06:00,
|
||||
Set User Permissions,Postavite korisnička prava,
|
||||
Setup Auto Email,Podešavanje auto e-mail-a,
|
||||
Setup Complete,Podešavanje završeno,
|
||||
Share With,Podijeli sa,
|
||||
Share this document with,Podijelite ovaj dokument sa,
|
||||
Share {0} with,Podijeli {0} sa,
|
||||
Shared With,Podijeljeno sa,
|
||||
Shared with everyone,Podijeljeno sa svima,
|
||||
Shared with {0},Podijeljeno sa {0},
|
||||
Show Totals,Prikaži ukupno,
|
||||
Show all Versions,Prikaži sve verzije,
|
||||
Sorry! You are not permitted to view this page.,Niste autorizovani za prikaz ove stranice.,
|
||||
Sort Order,Sortiranje,
|
||||
Standard Reports,Standardni izvještaji,
|
||||
States,Države,
|
||||
Subject Field,Polje naslova,
|
||||
Submit this document to confirm,Potvrdi ovaj dokument da bi ga zaključio,
|
||||
Submitting,Potvrđivanje,
|
||||
Success Message,Poruka o uspjehu,
|
||||
Switch To Desk,Pređi na radnu površinu,
|
||||
System Settings,Sistemska podešavanja,
|
||||
Test_Folder,Test_folder,
|
||||
To Do,To Do,
|
||||
ToDo,To Do,
|
||||
Tree,Stablo,
|
||||
Unshared,Nije podijeljen,
|
||||
User '{0}' already has the role '{1}',Korisnik '{0}' već sarži rolu '{1}',
|
||||
User Permissions,Prava pristupa korisnika,
|
||||
User Tags,Korisnički tagovi,
|
||||
Users with role {0}:,Korisnici sa rolom {0} :,
|
||||
View List,Prikaz liste,
|
||||
View Website,Pogledaj sajt,
|
||||
With Letter head,Sa zaglavljem,
|
||||
Y Axis Fields,Поља на Y-oси,
|
||||
Yandex.Mail,Yandex.Mail,
|
||||
Yesterday,Juče,
|
||||
You are not allowed to create columns,Немате дозволу да правите колоне,
|
||||
You are not allowed to delete a standard Website Theme,Немате дозволу за брисање стандардне Вебсајт Теме,
|
||||
You are not allowed to print this document,Немате дозволу да штампате овај документ,
|
||||
You are not allowed to print this report,Немате дозволу да штампате овај извештај,
|
||||
You are not allowed to send emails related to this document,Немате дозволу да шаљете мејлове у вези са овим документом,
|
||||
You are not allowed to update this Web Form Document,Немате дозволу да ажурирате овај Документ Веб Форме,
|
||||
You are not connected to Internet. Retry after sometime.,Нисте повезани са Интернетом. Покушајте касније.,
|
||||
You are not permitted to access this page.,Немате дозволу да приступите овој страници.,
|
||||
You are not permitted to view the newsletter.,Немате дозволу да видите овај билтен.,
|
||||
You can add dynamic properties from the document by using Jinja templating.,Можете да додате динамичке вредности из документа помоћу Jinja шаблона.,
|
||||
"You can change Submitted documents by cancelling them and then, amending them.",Можете да измените потврђене документе тако што ћете их поништити а затим изменити.,
|
||||
You can find things by asking 'find orange in customers',"Можете тражити ствари претрагом ""тражи наранџасто у купцима""",
|
||||
You can only upload upto 5000 records in one go. (may be less in some cases),Можете поднети највише 5000 записа одједном. (некада може бити и мање),
|
||||
You can use Customize Form to set levels on fields.,Можете користити Прилагоди Формулар да подесите нивое на пољима.,
|
||||
You can use wildcard %,Можете да користите џокер %,
|
||||
You can't set 'Translatable' for field {0},Не можете поставити 'Може се превести' за поље {0},
|
||||
You cannot unset 'Read Only' for field {0},"Не можете искључити ""Само за читање"" за поље {0}",
|
||||
You do not have enough permissions to access this resource. Please contact your manager to get access.,Немате дозволу да приступите овоме. Молимо јавите се свом менаџеру да добијете приступ.,
|
||||
You do not have enough permissions to complete the action,Немате дозволу да завршите ову акцију.,
|
||||
You don't have access to Report: {0},Немате дозволу да приступите Извештају: {0},
|
||||
You don't have any messages yet.,Још увек немате порука.,
|
||||
You don't have permission to access this file,Немате дозволу да приступите овој датотеци.,
|
||||
You don't have permission to get a report on: {0},Немате дозволу да добијете извештај о: {0},
|
||||
You don't have the permissions to access this document,Немате дозволу да приступите овом документу.,
|
||||
You have been successfully logged out,Успешно сте се одјавили,
|
||||
_doctype,_doctype,
|
||||
_report,_izvještaj,
|
||||
e.g.:,npr:,
|
||||
folder-close,Folder-zatvori,
|
||||
folder-open,folder-otvori,
|
||||
picture,Slika,
|
||||
renamed from {0} to {1},Preimenuj iz {0} u {1},
|
||||
share-alt,Podijeli-alt,
|
||||
show,Prikaži,
|
||||
{0} List,{0} Lista,
|
||||
{0} Report,Izvještaj {0},
|
||||
{0} Tree,{0} stablo,
|
||||
{0} added,Dodao je {0},
|
||||
{0} comments,{0} komentara,
|
||||
{0} days ago,prije {0} dana,
|
||||
{0} is currently viewing this document,{0} trenutno gleda ovaj dokumenat,
|
||||
{0} is saved,{0} je sačuvan,
|
||||
{0} months ago,Prije {0} mjeseci,
|
||||
{0} or {1},{0} {1} ili,
|
||||
{0} to {1},{0} do {1},
|
||||
{0} {1} to {2},{0} {1} do {2},
|
||||
Change,Kusur,
|
||||
From Date,Od datuma,
|
||||
Go,Traži,
|
||||
Naming Series,Vrste dokumenta,
|
||||
Activity,Aktivnost,
|
||||
Add Child,Dodaj podređeni,
|
||||
Add Multiple,Dodaj više,
|
||||
Added {0} ({1}),Dodato {0} ({1}),
|
||||
Address Line 1,Adresa 1,
|
||||
Addresses,Adrese,
|
||||
All,Svi,
|
||||
Brand,Brend,
|
||||
Browse,Izaberi,
|
||||
Cancelled,Otkazan,
|
||||
Close,Zatvori,
|
||||
Company,Preduzeće,
|
||||
Completed,Završeno,
|
||||
Country,Država,
|
||||
Currency,Valuta,
|
||||
Customize,Prilagodite,
|
||||
Date,Datum,
|
||||
Date Range,Opseg datuma,
|
||||
Delete,Obriši,
|
||||
Description,Opis,
|
||||
Disabled,Neaktivni,
|
||||
Due Date,Datum dospijeća,
|
||||
Duplicate,Dupliraj,
|
||||
Email,Email,
|
||||
Error,Greška,
|
||||
Export,Izvezi,
|
||||
File Manager,Fajlovi,
|
||||
Get Items,Dodaj stavke,
|
||||
Help,Pomoć,
|
||||
Home,Naslovna,
|
||||
Loading...,Učitavanje ...,
|
||||
Mobile No,Mobilni br.,
|
||||
Newsletter,Newsletter,
|
||||
Note,Bilješke,
|
||||
Offline,Van mreže (offline),
|
||||
Open,Otvoren,
|
||||
Pay,Plati,
|
||||
Project,Projekti,
|
||||
Rename,Reimenuj,
|
||||
Save,Sačuvaj,
|
||||
Set,Set,
|
||||
Setup,Podešavanje,
|
||||
Setup Wizard,Čarobnjak za postavke,
|
||||
Sr,Rb,
|
||||
Status,Status,
|
||||
Submitted,Potvrđen,
|
||||
Title,Naslov,
|
||||
Total,Ukupno,
|
||||
Totals,Ukupno,
|
||||
Type,Tip,
|
||||
Users and Permissions,Korisnici i dozvole,
|
||||
View,Pogledaj,
|
||||
Warehouse,Skladište,
|
||||
You can also copy-paste this link in your browser,Можете и да копирате и налепите овај линк у свој претраживач.,
|
||||
ALL,Svi,
|
||||
Attach File,Priloži dokument,
|
||||
CANCELLED,Otkazan,
|
||||
Calendar,Kalendar,
|
||||
Comments,Komentari,
|
||||
DRAFT,Na čekanju,
|
||||
EMail,Email,
|
||||
Not Like,Nije kao,
|
||||
Refresh,Osvježi,
|
||||
Tags,Tagovi,
|
||||
Upload,Priloži,
|
||||
Desktop,Radna površina,
|
||||
Download Backups,Preuzmi rezervne kopije programa,
|
||||
Role Permissions Manager,Menadžer prava pristupa rolama,
|
||||
Edit in full page,Izmijeni u punoj strani,
|
||||
Email Id,Email adresa,
|
||||
Email address,Email adresa,
|
||||
No,Ne,
|
||||
Upload failed,Dodavanje priloga neuspješno,
|
||||
Yes,Da,
|
||||
added,Dodato,
|
||||
added {0},Dodatо {0},
|
||||
barcode,barkod,
|
||||
calendar,Kalendar,
|
||||
comment,Komentar,
|
||||
comments,Komentari,
|
||||
created,Kreirano,
|
||||
dashboard,Nadzorna ploča,
|
||||
download,Preuzmi,
|
||||
edit,Izmijeni,
|
||||
email inbox,Email primljene,
|
||||
home,Naslovna,
|
||||
like,Kao,
|
||||
list,Lista,
|
||||
message,Poruka,
|
||||
move,Kretanje,
|
||||
new,Novi,
|
||||
not like,Nije kao,
|
||||
print,Štampaj,
|
||||
refresh,Osvježi,
|
||||
remove,Ukloni,
|
||||
share,Podijeli,
|
||||
success,Uspješno,
|
||||
tags,Tagovi,
|
||||
upload,Priloži,
|
||||
user,Korisnik,
|
||||
web link,Url adresa,
|
||||
yellow,жуто,
|
||||
|
|
|
|||
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue