Przeglądaj źródła

Merge branch 'develop'

version-14
Pratik Vyas 10 lat temu
rodzic
commit
12eb2fa7f2
32 zmienionych plików z 520 dodań i 359 usunięć
  1. +4
    -0
      frappe/__init__.py
  2. +1
    -1
      frappe/__version__.py
  3. +1
    -1
      frappe/hooks.py
  4. +5
    -0
      frappe/public/css/desk.css
  5. +1
    -1
      frappe/public/js/frappe/form/grid.js
  6. +1
    -1
      frappe/templates/form_grid/fields.html
  7. +72
    -20
      frappe/templates/generators/web_form.html
  8. +5
    -6
      frappe/templates/includes/breadcrumbs.html
  9. +11
    -8
      frappe/templates/includes/comment.html
  10. +1
    -1
      frappe/templates/includes/comments.html
  11. +4
    -1
      frappe/templates/includes/comments.py
  12. +1
    -1
      frappe/templates/includes/sidebar.html
  13. +10
    -10
      frappe/templates/pages/list.html
  14. +17
    -16
      frappe/templates/pages/list.py
  15. +2
    -2
      frappe/translations/ar.csv
  16. +7
    -7
      frappe/translations/de.csv
  17. +74
    -74
      frappe/translations/ja.csv
  18. +120
    -119
      frappe/translations/ru.csv
  19. +18
    -18
      frappe/translations/tr.csv
  20. +14
    -7
      frappe/utils/jinja.py
  21. +8
    -0
      frappe/utils/user.py
  22. +10
    -2
      frappe/website/context.py
  23. +44
    -13
      frappe/website/doctype/web_form/web_form.json
  24. +18
    -3
      frappe/website/doctype/web_form/web_form.py
  25. +35
    -13
      frappe/website/doctype/web_page/web_page.py
  26. +13
    -16
      frappe/website/js/website.js
  27. +1
    -1
      frappe/website/render.py
  28. +7
    -8
      frappe/website/statics.py
  29. +3
    -0
      frappe/website/template.py
  30. +1
    -1
      frappe/website/utils.py
  31. +10
    -7
      frappe/website/website_generator.py
  32. +1
    -1
      setup.py

+ 4
- 0
frappe/__init__.py Wyświetl plik

@@ -611,6 +611,10 @@ def get_list(doctype, filters=None, fields=None, or_filters=None, docstatus=None
limit_page_length=limit_page_length, as_list=as_list, debug=debug,
ignore_permissions=ignore_permissions, user=user)

def get_all(doctype, **args):
args["ignore_permissions"] = True
return get_list(doctype, **args)

run_query = get_list

def add_version(doc):


+ 1
- 1
frappe/__version__.py Wyświetl plik

@@ -1 +1 @@
__version__ = "4.4.6"
__version__ = "4.5.0"

+ 1
- 1
frappe/hooks.py Wyświetl plik

@@ -3,7 +3,7 @@ app_title = "Frappe Framework"
app_publisher = "Web Notes Technologies Pvt. Ltd."
app_description = "Full Stack Web Application Framework in Python"
app_icon = "assets/frappe/images/frappe.svg"
app_version = "4.4.6"
app_version = "4.5.0"
app_color = "#3498db"
app_email = "support@frappe.io"



+ 5
- 0
frappe/public/css/desk.css Wyświetl plik

@@ -362,6 +362,11 @@ ul.linked-with-list li {
cursor: pointer;
}

.grid-static-col {
max-height: 200px;
overflow: hidden;
}

.data-row {
margin-left: -20px;
}


+ 1
- 1
frappe/public/js/frappe/form/grid.js Wyświetl plik

@@ -333,7 +333,7 @@ frappe.ui.form.GridRow = Class.extend({
add_class += (["Int", "Currency", "Float"].indexOf(df.fieldtype)!==-1) ?
" text-right": "";

$col = $('<div class="col col-xs-'+colsize+add_class+'"></div>')
$col = $('<div class="col col-xs-'+colsize+add_class+' grid-static-col"></div>')
.html(txt)
.attr("data-fieldname", df.fieldname)
.data("df", df)


+ 1
- 1
frappe/templates/form_grid/fields.html Wyświetl plik

@@ -23,7 +23,7 @@
{%= doc.fieldtype %}
<br><span class="small">{%= doc.fieldname %}</span>
</div>
<div class="col-sm-4">
<div class="col-sm-4 grid-static-col">
{%= doc.options && doc.options.split("\n").join("<br>") || "" %}
{% if(doc["default"]) { %}
<br>{%= __("Default") %}: <strong>{%= doc["default"] %}</strong>


+ 72
- 20
frappe/templates/generators/web_form.html Wyświetl plik

@@ -36,12 +36,15 @@
<div class="list-group">
{% for i in items %}
<div class="list-group-item">
{% if allow_delete %}
<button class="close" data-name="{{ i.name }}">&times;</button>
{% endif %}
<a href="{{ pathname }}?name={{ i.name }}">
{{ i.title }}
</a>
<span class="text-muted pull-right">
{{ frappe.format_value(i.creation, {"fieldtype":"Date"}) }}
</span>
</a><br>
<div class="text-muted small">
{{ frappe.format_date(i.creation) }}
</div>
</div>
{% endfor %}
</div>
@@ -53,15 +56,26 @@

{%- macro help(field) -%}
{% if field.description -%}
<span class="help-block">{{ field.description }}</span>
<span class="help-block small">{{ field.description }}</span>
{%- endif -%}
{%- endmacro %}

{% macro label(field) %}<label for="{{ field.fieldname }}" class="col-sm-3 control-label">{{ field.label }}</label>{% endmacro %}


<div class="form-message alert alert-info hide"></div>
<form class="form-horizontal" role="form"
data-web-form="{{ name }}">
{% if params.name and web_page_link_text %}
<div class="row">
<div class="col-sm-offset-3 col-sm-9">
<div class="alert alert-info">
<a href="{{ ('/' + doc.parent_website_route) if doc.parent_website_route else '' }}/{{ doc.page_name }}">
{{ web_page_link_text }}</a>
</div>
</div>
</div>
{% endif %}
<input type="hidden" name="web_form" value="{{ name }}">
<input type="hidden" name="doctype" value="{{ doc_type }}">
{% if params.name -%}
@@ -71,6 +85,10 @@
{% if field.hidden %}
<input type="hidden"
name="{{ field.fieldname }}" value="{{ field.default }}">
{% elif field.fieldtype == "HTML" and field.options %}
<div class="form-group">
{{ field.options }}
</div>
{% elif field.fieldtype in ("Data", "Date", "Datetime") %}
<div class="form-group">
{{ label(field) }}
@@ -85,11 +103,11 @@
{{ label(field) }}
<div class="col-sm-9">
<select class="form-control" {{ properties(field) }}>
{% for option in field.options.split("\n") %}
{% for option in field.options.split("\n") -%}
<option value="{{ option }}"
"value(field)==option and 'selected' or '' }}">
{{ 'selected="selected"' if value(field)==option else '' }}>
{{ option }}</option>
{% endfor %}
{%- endfor %}
</select>
{{ help(field) }}
</div>
@@ -98,7 +116,7 @@
<div class="form-group">
{{ label(field) }}
<div class="col-sm-9">
<textarea class="form-control" style="height: 100px;"
<textarea class="form-control" style="height: 200px;"
{{ properties(field) }}>{{ value(field) }}</textarea>
{{ help(field) }}
</div>
@@ -131,7 +149,7 @@
<label>
<input type="checkbox" id="{{ field.fieldname }}"
name="{{ field.fieldname }}"
"{{ doc and doc.get(field.fieldname) and 'checked' or '' }}">
{{ doc and doc.get(field.fieldname) and 'checked' or '' }}>
{{ field.label }}
</label>
{{ help(field) }}
@@ -148,7 +166,7 @@
</div>
</form>
{% if allow_comments -%}
<div class="row">
<div class="row comments">
<div class="col-sm-offset-3 col-sm-9">
<hr>
<h3>{{ _("Comments") }}</h3>
@@ -163,6 +181,7 @@
<script>
frappe.ready(function() {
window.file_reading = false;
frappe.datepicker_format = "{{ frappe.date_format.replace('yyyy', 'yy') }}";
var $form = $("form[data-web-form='{{ name }}']");

// read file attachment
@@ -198,6 +217,7 @@ frappe.ready(function() {
return false;
});

// submit
$("form[data-web-form='{{ name }}']").on("submit", function() {
var args = {};
if(window.saving)
@@ -212,8 +232,14 @@ frappe.ready(function() {

$form.find("[name]").each(function() {
var $input = $(this);
if($input.attr("type")==="file") {
var input_type = $input.attr("type");
if(input_type==="file") {
var val = $input.get(0).filedata;
} else if(input_type==="checkbox") {
var val = $input.is(":checked") ? 1 : 0;
} else if($input.attr("data-fieldtype")==="Date") {
var val = $.datepicker.formatDate("yy-mm-dd",
$input.datepicker('getDate'));
} else {
var val = $input.val();
}
@@ -236,15 +262,12 @@ frappe.ready(function() {
callback: function(data) {
if(!data.exc) {
$form.addClass("hide");
$(".comments").addClass("hide");
scroll(0, 0);
$(".form-message")
.html("{{ success_message or 'Thank You!' }}")
.html("{{ success_message or 'Thank You!' }}"
+ '<p><a href="{{ success_url }}">Continue</a></p>')
.removeClass("hide");
{% if success_url -%}
setTimeout(function() {
window.location.href = "{{ success_url }}";
}, 1000);
{%- endif %};
}
window.saving = false;
}
@@ -253,6 +276,26 @@ frappe.ready(function() {
return false;
});

// close button
$(".close").on("click", function() {
var name = $(this).attr("data-name");
if(name) {
frappe.call({
type:"POST",
method: "frappe.website.doctype.web_form.web_form.delete",
args: {
"web_form": "{{ name }}",
"name": name
},
callback: function(r) {
if(!r.exc) {
location.reload();
}
}
});
}
})

// import date picker / timepicker if required
{% if "Date" in types %}
frappe.require("assets/frappe/js/lib/jquery/jquery.ui.min.js");
@@ -261,7 +304,16 @@ frappe.ready(function() {
altFormat:'yy-mm-dd',
changeYear: true,
yearRange: "-70Y:+10Y",
dateFormat: "{{ frappe.date_format.replace('yyyy', 'yy') }}",
dateFormat: frappe.datepicker_format,
});

// convert dates to user format
$form.find("[data-fieldtype='Date']").each(function() {
var val = $(this).val();
if(val) {
$(this).val($.datepicker.formatDate(frappe.datepicker_format,
$.datepicker.parseDate("yy-mm-dd", val)));
}
})

{% endif %}
@@ -275,7 +327,7 @@ frappe.ready(function() {
altFormat:'yy-mm-dd',
changeYear: true,
yearRange: "-70Y:+10Y",
dateFormat: "{{ frappe.date_format.replace('yyyy', 'yy') }}",
dateFormat: frappe.datepicker_format,
})
{% endif %}
});


+ 5
- 6
frappe/templates/includes/breadcrumbs.html Wyświetl plik

@@ -1,9 +1,8 @@
{% set parents = doc.get_parents() if (doc and doc.get_parents) else [] %}
{% if parents and parents|length > 0 %}
<ul class="breadcrumb">
{% if parents|length > 0 %}
{% for parent in parents %}
<li><a href="{{ parent.name }}">{{ parent.page_title or parent.title or "" }}</a></li>
{% endfor %}
{% for parent in parents %}
<li><a href="{{ parent.name }}">{{ parent.page_title or parent.title or "" }}</a></li>
{% endfor %}
<li class="active">{{ title or "" }}</li>
{% endif %}
</ul>
{% endif %}

+ 11
- 8
frappe/templates/includes/comment.html Wyświetl plik

@@ -1,9 +1,12 @@
<div class="comment-row">
<div class="comment-title text-muted">
<span itemprop="name" class="author">{{ comment.comment_by_fullname }}</span> /
<span itemprop="commentTime">{{ comment.creation|global_date_format }}</span>:
<div class="media">
<a class="pull-left" href="#">
<img class="media-object" style="width: 48px;" src="{{ frappe.get_gravatar(comment.comment_by) }}" alt="{{ comment.comment_by_fullname }}">
</a>
<div class="media-body">
<h5 class="media-heading" itemprop="name">{{ comment.comment_by_fullname }}</h5>
<p class="text-muted small">
<span itemprop="commentTime">{{ comment.creation|global_date_format }}</span>
</p>
<div itemprop="commentText">{{ comment.comment|markdown }}</div>
</div>
<p class="comment-content" itemprop="commentText"
style="margin-left: 20px;">{{ comment.comment|markdown }}</p>
<hr>
</div>
</div>

+ 1
- 1
frappe/templates/includes/comments.html Wyświetl plik

@@ -54,7 +54,7 @@ $(document).ready(function() {
comment: $("[name='comment']").val(),
comment_doctype: "{{ doctype }}",
comment_docname: "{{ name }}",
page_name: "{{ path }}",
page_name: "{{ pathname }}",
}

if(!args.comment_by_fullname || !args.comment_by || !args.comment) {


+ 4
- 1
frappe/templates/includes/comments.py Wyświetl plik

@@ -45,13 +45,16 @@ def add_comment(args=None):
owner = frappe.db.get_value(comment.comment_doctype, comment.comment_docname, "owner")
recipients = list(set(commentors if owner=="Administrator" else (commentors + [owner])))

message = _("{0} by {1}").format(markdown2.markdown(args.get("comment")), comment.comment_by_fullname)
message += "<p><a href='{0}/{1}' style='font-size: 80%'>{2}</a></p>".format(frappe.utils.get_request_site_address(),
page_name, _("View it in your browser"))

from frappe.utils.email_lib.bulk import send
send(recipients=recipients,
doctype='Comment',
email_field='comment_by',
subject = _("New comment on {0} {1}").format(comment.comment_doctype, comment.comment_docname),
message = _("{0} by {1}").format(markdown2.markdown(args.get("comment")), comment.comment_by_fullname),
message = message,
ref_doctype=comment.comment_doctype, ref_docname=comment.comment_docname)

template = frappe.get_template("templates/includes/comment.html")


+ 1
- 1
frappe/templates/includes/sidebar.html Wyświetl plik

@@ -3,7 +3,7 @@
<div class="sidebar-items">
{%- for child in children -%}
<div class="sidebar-item">
<a href="{{ child.name }}" class="no-decoration {% if (pathname or "").startswith(child.name or "") %}active{% endif %}">
<a href="{{ child.name }}" class="no-decoration {% if (pathname or "")==(child.name or "") %}active{% endif %}">
{{ child.title or child.page_title or (child.name or "").replace("_", " ").title() }}
</a>
</div>


+ 10
- 10
frappe/templates/pages/list.html Wyświetl plik

@@ -1,18 +1,17 @@
{% block title %}{{ type }} {{ _("List") }}{% endblock %}
{% block title %}{{ doctype }} {{ _("List") }}{% endblock %}

{% block header %}
<h2>{{ type }} {{ _("List") }}</h2>
<h2>{{ doctype }} {{ _("List") }}</h2>
{% endblock %}

{% block content %}
<!-- no-sidebar -->
<div class="row">
<div class=" col-sm-offset-8 col-sm-4">
<form class="form-inline form-search" action="/list">
<div class="input-group">
<input class="form-control" type="text" name="txt"
<input class="form-control" doctype="text" name="txt"
placeholder="Search..." value="{{ txt or '' }}">
<input type="hidden" name="type" value="{{ type }}">
<input type="hidden" name="doctype" value="{{ doctype }}">
<span class="input-group-btn">
<button class="btn btn-default" type="submit">
<i class="icon-search"></i></button>
@@ -23,13 +22,14 @@
</div>
<br>
{% if txt %}
<div class="alert alert-warning">Results filtered by <b>{{ txt }}</b>. <a href="/list?type={{ type }}" class="close">&times;</a></div>
<div class="alert alert-warning">Results filtered by <b>{{ txt }}</b>. <a href="/list?doctype={{ doctype }}" class="close">&times;</a></div>
{% endif %}
<div class="list-group" data-type="{{ type }}" data-txt="{{ txt or '[notxt]' }}">
<div data-doctype="{{ doctype }}" data-txt="{{ txt or '[notxt]' }}">
{% for item in items %}
<div class="list-group-item">
<div>
{{ item }}
</div>
</div>
{% endfor %}
</div>
<div class="more-block text-center hide">
@@ -41,7 +41,7 @@
<script>
frappe.ready(function() {
// show more button if len is 20
$list_group = $(".list-group[data-type='{{ type }}'][data-txt='{{ txt or "[notxt]" }}']");
$list_group = $(".list-group[data-doctype='{{ doctype }}'][data-txt='{{ txt or "[notxt]" }}']");

// more ajax
frappe.start = 20;
@@ -49,7 +49,7 @@ frappe.ready(function() {
$.ajax({
url:"/api/method/frappe.templates.pages.list.get_items",
data: {
type: "{{ type }}",
doctype: "{{ doctype }}",
txt: "{{ txt or '' }}",
limit_start: frappe.start
},


+ 17
- 16
frappe/templates/pages/list.py Wyświetl plik

@@ -3,47 +3,48 @@

from __future__ import unicode_literals
import frappe, os
from frappe.modules import get_doc_path
from jinja2 import Environment, Template, FileSystemLoader
from frappe.modules import get_doc_path, load_doctype_module

no_cache = 1
no_sitemap = 1

def get_context(context):
context.type = frappe.local.form_dict.type
context.doctype = frappe.local.form_dict.doctype
context.txt = frappe.local.form_dict.txt
context.update(get_items(context.type, context.txt))
module = load_doctype_module(context.doctype)
context.update(get_items(context.doctype, context.txt))
return context

@frappe.whitelist(allow_guest=True)
def get_items(type, txt, limit_start=0):
meta = frappe.get_meta(type)
def get_items(doctype, txt, limit_start=0):
meta = frappe.get_meta(doctype)
filters, or_filters = [], []
out = frappe._dict()
module = load_doctype_module(doctype)

if txt:
if meta.search_fields:
for f in meta.get_search_fields():
or_filters.append([type, f.strip(), "like", "%" + txt + "%"])
or_filters.append([doctype, f.strip(), "like", "%" + txt + "%"])
else:
filters.append([type, "name", "like", "%" + txt + "%"])
filters.append([doctype, "name", "like", "%" + txt + "%"])


out.raw_items = frappe.get_list(type, fields = ["*"],
out.raw_items = frappe.get_list(doctype, fields = ["*"],
filters=filters, or_filters = or_filters, limit_start=limit_start,
limit_page_length = 20)
template_path = os.path.join(get_doc_path(meta.module, "DocType", meta.name), "list_item.html")

if os.path.exists(template_path):
env = Environment(loader = FileSystemLoader("/"))
#template_path = os.path.relpath(template_path)
template = env.get_template(template_path)
if hasattr(module, "get_list_item"):
out["items"] = []
for i in out.raw_items:
i.doc = i
out["items"].append(module.get_list_item(i))
else:
template = Template("""<div><a href="/{{ doctype }}/{{ doc.name }}" no-pjax>
{{ doc[title_field] }}</a></div>""")

out.items = [template.render(doc=i, doctype=type,
title_field = meta.title_field or "name") for i in out.raw_items]
out.items = [template.render(doc=i, doctype=doctype,
title_field = meta.title_field or "name") for i in out.raw_items]

out.meta = meta



+ 2
- 2
frappe/translations/ar.csv Wyświetl plik

@@ -136,7 +136,7 @@ Bulk Email,الجزء الأكبر البريد الإلكتروني
Bulk email limit {0} crossed,الحد معظم البريد الإلكتروني {0} عبروا
Button,زر
By,بواسطة
Calculate,حساب
Calculate,إحسب
Calendar,تقويم
Cancel,إلغاء
Cancelled,إلغاء
@@ -193,7 +193,7 @@ Comment By Fullname,التعليق بواسطة الاسم بالكامل
Comment Date,التعليق تاريخ
Comment Docname,التعليق Docname
Comment Doctype,التعليق DOCTYPE
Comment Time,التعليق الوقت
Comment Time,وقت التعليق
Comments,تعليقات
Communication,اتصالات
Communication Medium,الاتصالات متوسطة


+ 7
- 7
frappe/translations/de.csv Wyświetl plik

@@ -17,13 +17,13 @@
A user can be permitted to multiple records of the same DocType.,Ein Benutzer kann die Genehmigung für mehrere Datensätze des gleichen DocType haben.
About,Info
About Us Settings,Über uns Einstellungen
About Us Team Member,Über uns Team-Mitglied
About Us Team Member,Über uns Teammitglied
Action,Aktion
"Actions for workflow (e.g. Approve, Cancel).","Aktionen für Workflows (z. B. genehmigen , Abbruch) ."
Add,Hinzufügen
Add A New Rule,Hinzufügen einer neuen Regel
Add A User Permission,Fügen Sie ein Benutzerberechtigung hinzu
Add Attachments,Hinzufügen von Dateianhängen
Add A New Rule,Neue Regel hinzufügen
Add A User Permission,Benutzerberechtigung hinzufügen
Add Attachments,Anhänge hinzufügen
Add Bookmark,Lesezeichen hinzufügen
Add CSS,CSS hinzufügen
Add Column,Spalte hinzufügen
@@ -34,11 +34,11 @@ Add New Permission Rule,Neue Berechtigungsregel hinzufügen
Add Reply,Antwort hinzufügen
Add Tag,
Add Total Row,Gesamtzeile hinzufügen
Add a New Role,Fügen Sie eine neue Rolle hinzu
Add a New Role,Neue Rolle hinzufügen
Add a banner to the site. (small banners are usually good),Der Website ein Werbebanner hinzufügen. (kleine Banner sind in der Regel gut)
Add all roles,Alle Rollen hinzufügen
Add attachment,Anhang hinzufügen
Add code as &lt;script&gt;,Code als <script> hinzufügen
Add code as &lt;script&gt;,Code als <script> hinzfügen
Add comment,
Add custom javascript to forms.,"Fügen Sie benutzerdefinierte Javascript, um Formen ."
Add fields to forms.,Fügen Sie Felder zu Formularen .
@@ -1351,7 +1351,7 @@ arrow-left,Pfeil-nach-links
arrow-right,Pfeil-nach-rechts
arrow-up,Pfeil-nach-oben
asterisk,Sternchen
backward,Rücktaste
backward,zurück
ban-circle,ban-circle
barcode,Strichcode
beginning with,beginnend mit


+ 74
- 74
frappe/translations/ja.csv Wyświetl plik

@@ -311,7 +311,7 @@ Duplicate name {0} {1},重複する名前{0} {1}
Dynamic Link,動的リンク
ERPNext Demo,ERPNextデモ
Edit,編集
Edit Permissions,権限の編集
Edit Permissions,認可を編集する
Editable,編集可能な
Email,Eメール
Email Alert,電子メールアラート
@@ -329,11 +329,11 @@ Email Signature,電子メールの署名
Email Use SSL,電子メールを使用したSSL
Email address,メールアドレス
"Email addresses, separted by commas",カンマでseparted電子メールアドレス、
Email not verified with {1},メールによって確認していない{1}
Email not verified with {1},電子メールは{1}で確認されませんでした。
Email sent to {0},{0}に送信された電子メール
Email...,電子メール...
Emails are muted,メールはミュートされ
Embed image slideshows in website pages.,ウェブサイトのページ内の画像のスライドショーを埋め込
Embed image slideshows in website pages.,ウェブサイトのページ内の画像のスライドショーを埋め込んでください
Enable,可能
Enable Comments,コメントを有効にする
Enable Scheduled Jobs,スケジュールされたジョブを有効にする
@@ -347,7 +347,7 @@ Enter at least one permission row,少なくとも1の許可の行を入力して
Equals,等号
Error,エラー
"Error generating PDF, attachment sent as HTML",HTMLとして送信されたエラー発生ファイル、添付ファイル
Error: Document has been modified after you have opened it,エラー:あなたがそれを開いた後にドキュメントが変更されました
Error: Document has been modified after you have opened it,エラー:あなたがそれを開いた後に文書が変更されました
Event,イベント
Event Datetime,イベント日時
Event Individuals,イベント個人
@@ -421,7 +421,7 @@ For DocType,のDocType用
"For Links, enter the DocType as rangeFor Select, enter list of Options separated by comma",リンクについては、範囲としてのDocTypeに入る選択して、カンマで区切られたオプションのリストを入力します。
"For comparative filters, start with",比較のフィルタの場合、で始まる
For example if you cancel and amend 'INV004' it will become a new document 'INV004-1'. This helps you to keep track of each amendment.,あなたがキャンセルして「INV004」を改正する場合は、新しいドキュメント 'INV004-1」となります。これにより、各修正案を追跡するのに役立ちます。
For ranges,範囲については、
For ranges,範囲について
For top bar,トップバーの
For {0} at level {1} in {2} in row {3},{0}のレベルで{1} {2}の行の{3}
Forgot Password,パスワードを忘れた方はこちら
@@ -439,7 +439,7 @@ Gender,性別
Generator,発電機
Georgia,ジョージア
Get,ゲット
Get From ,
Get From ,フォームを取得
"Get your globally recognized avatar from <a href=""https://gravatar.com/"">Gravatar.com</a>","もし、ごhref=""https://gravatar.com/""> Gravatar.com </ A>から世界的に認知されたアバターを入手"
GitHub,GitHub
GitHub Client ID,GitHubのクライアントID
@@ -450,13 +450,13 @@ Google,グーグル。
Google Analytics ID,{0}Google Analytics ID{/0}
Google Client ID,GoogleのクライアントID
Google Client Secret,Googleのクライアントの秘密
Google Plus One,グーグルプラスワン
Google Plus One,Googleプラスワン
Google User ID,GoogleのユーザーID
Google Web Font (Heading),Googleウェブフォント(見出し)
Google Web Font (Text),Googleウェブフォント(テキスト)
Greater or equals,グレーターまたは等号
Greater or equals,大か等しい
Greater than,より大きい
"Group Added, refreshing...",グループ追加、さわやかな...
"Group Added, refreshing...",グループ追加しました、さわやかな...
Group Description,コミュニティの説明
Group Name,グループ名
Group Title,グループタイトル
@@ -473,7 +473,7 @@ Helvetica Neue,ヘルベチカノイエ
Hidden,非表示
Hide Actions,アクション隠す
Hide Copy,コピーを隠す
Hide Heading,隠す見出し
Hide Heading,見出しを隠す
Hide Toolbar,ツールバーを非表示に
Hide the sidebar,サイドバーを隠す
High,高
@@ -543,7 +543,7 @@ Is Submittable,Submittableです
Is Task,課題である
Item cannot be added to its own descendents,アイテムには独自の子孫に追加することはできません
JavaScript Format: frappe.query_reports['REPORTNAME'] = {},JavaScriptの形式:frappe.query_reports ['REPORTNAME'] = {}
Javascript,Javascript
Javascript,ジャバスプリクト
Javascript to append to the head section of the page.,Javascriptがページのheadセクションに追加する。
Key,キー (key)
Label,ラベル
@@ -565,7 +565,7 @@ Left,左
Less or equals,以下のequals
Less than,未満
Letter,手紙
Letter Head,レターヘッド
Letter Head,レターヘッド(会社名•所在地などを便箋上部に印刷したもの)
Letter Head Name,レターヘッドの名前
Letter Head in HTML,HTMLでレターヘッド
Level,レベル
@@ -744,17 +744,17 @@ Page,ページ
Page #{0} of {1},ページ#{0}の{1}
Page Background,ページの背景
Page HTML,ページのHTML
Page Header,ページヘッダー
Page Header Background,ページヘッダーの背景
Page Header Text,ページヘッダーテキスト
Page Header,ページ見出し
Page Header Background,ページ見出しの背景
Page Header Text,ページ見出しテキスト
Page Links,ページへのリンク
Page Name,ページ名
Page Role,ページの役割
Page Text,ページテキスト
Page Title,ページ タイトル
Page content,ページコンテンツ
Page content,ページ内容
Page not found,ページが見つかりません
Page or Generator,ページまたは発電機
Page or Generator,ページまたはジェネレーター
Page url name (auto-generated),ページURL名(自動生成された)
Parent Label,親ラベル
Parent Post,親ポスト
@@ -850,10 +850,10 @@ Published,公開済み
Published On,上で公開
Published on website at: {0},のウェブサイト上で公開:{0}
Pull Emails from the Inbox and attach them as Communication records (for known contacts).,受信トレイからメールを引いて(知らコンタクト用)通信記録として取り付けます。
Query,クエリ
Query,質問
Query Options,クエリーオプション
Query Report,クエリ レポート
Query must be a SELECT,クエリは、SELECTでなければなりません
Query must be a SELECT,質問は、セレクトでなければなりません。
Quick Help for Setting Permissions,アクセス権を設定するためのクイックヘルプ
Quick Help for User Permissions,ユーザーのアクセス許可のためのクイックヘルプ
Re-open,再オープン
@@ -1021,7 +1021,7 @@ Sign up,申込み
Single Post (article).,シングルポスト(記事)。
Single Types have only one record no tables associated. Values are stored in tabSingles,シングルタイプはテーブルが関連付けられていない唯一の記録がある。値がtabSinglesに格納されてい
Sitemap Browser,サイトマップブラウザー
Slideshow,スライドショー
Slideshow,スライドショー(一連の画像を順次表示するもの)
Slideshow Items,スライドショーアイテム
Slideshow Name,スライドショーの名前
Small Text,小さなテキスト
@@ -1135,18 +1135,18 @@ Twitter Share,Twitterで共有
Twitter Share via,Twitterで共有経由
Type,データ型
Unable to find attachment {0},添付ファイル{0}が見つかりません
Unable to load: {0},ロードできません:{0}
Unable to load: {0},{0}を読み取ることが出来ません。
Unable to open attached file. Please try again.,添付ファイルを開くことができません。もう一度お試しください。
Unable to send emails at this time,この時に電子メールを送信することができません。
Unable to send emails at this time,メールを送信することができません。
Unknown Column: {0},不明なコラム:{0}
"Unknown file encoding. Tried utf-8, windows-1250, windows-1252.",未知のファイルのエンコーディング。UTF-8、Windowsベース1250、Windowsベース1252を試してみました
"Unknown file encoding. Tried utf-8, windows-1250, windows-1252.",未知のファイルのエンコーディング(符号化)。UTF-8、Windowsベース1250、Windowsベース1252を試し済み
Unread Messages,未読メッセージ
Unsubscribe,サービス退会
Unsubscribe,購読解除
Unsubscribed,購読解除
Upcoming Events for Today,今日のための今後のイベント
Upcoming Events for Today,今日すべき事柄。
Update,更新
Update Field,フィールドの更新
Update Value,更新
Update Field,フィールド(欄)の更新
Update Value,値の更新
Updated,更新日
Upload,アップロード
Upload Attachment,添付ファイルをアップロード
@@ -1157,7 +1157,7 @@ Upload and Sync,アップロードと同期
Uploading...,アップロードしています...
Upvotes,Upvotes
Use TLS,TLSを使用
User,ユーザー
User,ユーザー(使用者)
User Cannot Create,ユーザーが作成できない
User Cannot Search,ユーザーが検索することはできません
User Defaults,ユーザー·デフォルト設定
@@ -1181,39 +1181,39 @@ UserRole,USERROLE
Users and Permissions,ユーザーと権限
Users with role {0}:,ロールを持つユーザー{0}:
Valid Login id required.,有効なログインIDが必要です。
Valid email and name required,有効な電子メールと名前が必要
Valid email and name required,有効なメールアドレスと名前が必要です。
Value,値
Value Change,値変更
Value Changed,値を変更
Value cannot be changed for {0},値は{0}のために変更することはできません
Value Changed,値を変更済み
Value cannot be changed for {0},{0}の値は変更することはできません。
Value for a check field can be either 0 or 1,チェックフィールドの値は0または1のいずれかになります
Value missing for,値に対して不足している
Verdana,Verdana
Version,バージョン
Version restored,バージョンに復元
View or manage Website Route tree.,ウェブサイトのルートツリーを表示したり、管理します
Visit,訪問
Value missing for,の値の記入漏れ。
Verdana,ヴァーダナ(視認性向上のために開発された書体)
Version,バージョン/版
Version restored,復元
View or manage Website Route tree.,ウェブサイトの系図経路の表示または管理
Visit,観覧/アクセス
Warning,警告
Warning: This Print Format is in old style and cannot be generated via the API.,警告:この印刷フォーマットは古いスタイルであり、APIを介して生成することはできません。
Warning: This Print Format is in old style and cannot be generated via the API.,警告:古い印刷書式のため、APIを介して生産することはできません。
Web Page,ウェブページ
Web Site Forum Page.,Webサイトのフォーラムページ。
Web Site Forum Page.,ウェブサイトの掲示板
Website,ウェブサイト
Website Group,ウェブサイトのグループ
Website Route,ウェブルート
Website Route Permission,ウェブサイトルート許可
Website Script,ウェブサイトのスクリプト
Website Route,ウェブルート(経路)
Website Route Permission,ウェブサイトルート許可
Website Script,ウェブサイトのスクリプト(処理手順プログラム)
Website Settings,Webサイト設定
Website Slideshow,ウェブサイトのスライドショー
Website Slideshow Item,ウェブサイトのスライドショーアイテム
Website User,ウェブサイトのユーザー
Website User,ウェブサイトのユーザー(利用者)
Wednesday,水曜日
Welcome email sent,ウェルカムメール送信された
"When you Amend a document after Cancel and save it, it will get a new number that is a version of the old number.",あなたが後にそれをキャンセルして、保存した文書を改正する場合は、古い番号のバージョンである新しい番号を取得します。
Welcome email sent,ウェルカムメール(歓迎メール)が送信されまし
"When you Amend a document after Cancel and save it, it will get a new number that is a version of the old number.",キャンセル後、書類を訂正し保存することで更新された書類は古い番号から新規の番号を取得します。
Width,幅
Will be used in url (usually first name).,URL(通常はファーストネーム)で使用されます。
Will be used in url (usually first name).,URLで使用されます。(通常名前で表記されます)
With Groups,グループと
With Ledgers,元帳と
With Letterhead,レターヘッド付き
With Letterhead,レターヘッド付き(会社名•所在地などを便箋上部に印刷したもの。)
Workflow,作業の流れ
Workflow Action,ワークフローアクション
Workflow Action Name,ワークフローアクション名
@@ -1221,32 +1221,32 @@ Workflow Document State,ワークフロードキュメントの状態
Workflow Document States,ワークフロードキュメントの状態
Workflow Name,ワークフロー名
Workflow State,ワークフローの状態
Workflow State Field,ワークフローの状態フィールド
Workflow Transition,ワークフロートランジション
Workflow Transitions,ワークフロートランジション
Workflow State Field,ワークフローの欄の状態
Workflow Transition,ワークフロートランジション(仕事の流れの変遷)
Workflow Transitions,ワークフロートランジション(仕事の流れの変遷)
Workflow will start after saving.,ワークフローは保存した後に開始されます。
Write,書き込む
Write a Python file in the same folder where this is saved and return column and result.,これが保存されているのと同じフォルダにあるPythonファイルを作成し、列と結果を返します
Write a SELECT query. Note result is not paged (all data is sent in one go).,SELECTクエリを記述します。注結果は、(すべてのデータが一度に送信されます)ページングされていません
Write titles and introductions to your blog.,あなたのブログにタイトルや紹介を書きます
Write a Python file in the same folder where this is saved and return column and result.,パイソンファイルをそれが保存されている同じフォルダーに保存し、コラム(縦の行)と数値を報告する
Write a SELECT query. Note result is not paged (all data is sent in one go).,SELECTクエリ(質問)の記入。結果/返答は一度にまとめて送られてきます
Write titles and introductions to your blog.,あなたのブログにタイトルと紹介文を記載して下さい
Writers Introduction,作家紹介
Year,年
Yes,はい
Yesterday,昨日
You are not allowed to create / edit reports,あなたは/編集レポートを作成することが許可されていません
You are not allowed to export the data of: {0}. Downloading empty template.,あなたは、データをエクスポートすることはできません:{0}。空のテンプレートのダウンロード
You are not allowed to export this report,あなたは、このレポートをエクスポートすることはできません
You are not allowed to print this document,あなたは、この文書を印刷することはできません
You are not allowed to send emails related to this document,あなたは、このドキュメントに関連する電子メールを送信することが許可されていません
"You can change Submitted documents by cancelling them and then, amending them.",あなたはそれらを修正し、それを打ち消すことによって提出された書類を変更することができます。
You can use Customize Form to set levels on fields.,あなたは、フィールド上のレベルを設定するカスタマイズフォームを使用することができます。
You can use wildcard %,ワイルドカード%を使用することができます
You cannot install this app,あなたは、このアプリをインストールすることはできません
You have unsaved changes in this form. Please save before you continue.,この形式で保存されていない変更があります。続行する前に、保存してください。
You need to be logged in and have System Manager Role to be able to access backups.,あなたはログインしてバックアップにアクセスできるようにするシステムマネージャの役割を持ってする必要があります。
You need write permission to rename,名前を変更する権限を書く必要があります
You seem to have written your name instead of your email. \ Please enter a valid email address so that we can get back.,あなたは、あなたの電子メールの代わりに自分の名前を書かれているように見える。\我々は取り戻すことができるように、有効なメールアドレスを入力してください。
"Your download is being built, this may take a few moments...",あなたのダウンロードは、これはしばらく時間がかかる場合があり、建設されている...
You are not allowed to create / edit reports,レポートを作成/編集することが許可されていません
You are not allowed to export the data of: {0}. Downloading empty template.,{0}のデータを出力することはできません。テンプレート(空白の定型書式ファイル)をダウンロードしています
You are not allowed to export this report,この記事を出力することが許可されていません。
You are not allowed to print this document,この文書を印刷することが許可されていません。
You are not allowed to send emails related to this document,この書類に関連するメールを送信することが許可されていません
"You can change Submitted documents by cancelling them and then, amending them.",書類を取り消し、修正することによって提出した書類を変更することができます。
You can use Customize Form to set levels on fields.,欄の制限を設定できるカスタマイズフォームを使用することができます。
You can use wildcard %,ワイルドカードの(を使用することができます
You cannot install this app,このアプリ(プログラム)をインストール(取り込む)することはできません
You have unsaved changes in this form. Please save before you continue.,この書式に保存されていない変更事項があります。継続する前に、保存してください。
You need to be logged in and have System Manager Role to be able to access backups.,"ログインして,’’システムマネージャロー(機能)’’でバックアップにアクセス(接続)できるようにする必要があります。"
You need write permission to rename,名前を変更するために許可書を書く必要があります
You seem to have written your name instead of your email. \ Please enter a valid email address so that we can get back.,メールアドレスの代わりに自分の名前を書かれているようです。\ 連絡が取れる有効なメールアドレスを入力してください。
"Your download is being built, this may take a few moments...",ダウンロード中。これはしばらくお待ち下さい。
[Label]:[Field Type]/[Options]:[Width],[ラベル]:[フィールドタイプ] / [オプション]:[幅]
[Optional] Send the email X days in advance of the specified date. 0 equals same day.,[オプション]指定した日付の前に電子メールのX日に送信します。 0は同じ日に等しい。
add your own CSS (careful!),独自のCSSを追加(careful!)
@@ -1306,7 +1306,7 @@ filter,filter
fire,火災
flag,flag
folder-close,フォルダを閉じる
folder-open,フォルダオープン
folder-open,フォルダを開ける
font,font
forward,まえがき
found,発見
@@ -1406,13 +1406,13 @@ use % as wildcard,ワイルドカードとして%を使用
user,ユーザー
user_image_show,user_image_show
values and dates,値と日付
values separated by commas,カンマで区切られた値
volume-down,ボリュームダウン
volume-off,ボリュームオフ
volume-up,ボリュームアップ
values separated by commas,"カンマ(,)で区切られた値"
volume-down,音量を落とす
volume-off,無音/音量を消す。
volume-up,音量を上げる。
warning-sign,警告サイン
wrench,レンチ
yyyy-mm-dd,YYYY-MM-DD
wrench,レンチ(ねじ回し)
yyyy-mm-dd,年/月/日
zoom-in,ズームアップ
zoom-out,ズームアウト
{0} List,{0}リスト


+ 120
- 119
frappe/translations/ru.csv Wyświetl plik

@@ -16,8 +16,8 @@
<i>text</i> <b>in</b> <i>document type</i>,<i> текст </ I> <b> в </ B> <i> типа документа </ I>
A user can be permitted to multiple records of the same DocType.,Пользователь может быть разрешено с несколькими записями той же DocType.
About,О нас
About Us Settings,О нас Настройки
About Us Team Member,О нас Команда Член
About Us Settings,"Настройки ""О нас"""
About Us Team Member,О члене комманды
Action,Действие
Actions,Действия
"Actions for workflow (e.g. Approve, Cancel).","Действия для рабочего процесса (например, утверждать, отменять)."
@@ -112,11 +112,11 @@ Avatar,Аватар
Back to Login,Войти
Background Color,Цвет фона
Background Image,Фоновое изображение
Background Style,Фон Стиль
Background Style,Стиль фона
Banner,Баннер
Banner HTML,Баннер HTML
Banner Image,Баннер Изображение
Banner is above the Top Menu Bar.,Баннер выше верхней строке меню.
Banner HTML,HTML Баннер
Banner Image,Изображение баннера
Banner is above the Top Menu Bar.,Баннер над верхнем меню.
Begin this page with a slideshow of images,Начать эту страницу с слайд-шоу из изображений
Beginning with,Начиная с
Belongs to,Принадлежит
@@ -125,18 +125,18 @@ Birth Date,Дата рождения
Blog Category,Блог Категории
Blog Intro,Блог Intro
Blog Introduction,Блог Введение
Blog Post,Сообщение блога
Blog Settings,Настройки Блог
Blog Post,Пост блога
Blog Settings,Настройки Блога
Blog Title,Название блога
Blogger,Blogger
Blogger,Блоггер
Bookmarks,Закладки
Both login and password required,"Оба Логин и пароль, необходимый"
Both login and password required,Необходимо ввести логин и пароль
Brand HTML,Марка HTML
Bulk Email,Массовая Email
Bulk email limit {0} crossed,Предел объемной электронной почты {0} пересек
Button,Кнопка
By,От
Calculate,Калькулировать
Calculate,Рассчитать
Calendar,Календарь
Cancel,Отмена
Cancelled,Отменено
@@ -164,7 +164,7 @@ Category,Категории
Category Name,Название категории
Center,Центр
"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.","Некоторые документы, как счета-фактуры, должны быть установлены только финал. Конечное состояние для таких документов называется Представленные. Вы можете ограничить, какие роли могут Представьте."
"Change field properties (hide, readonly, permission etc.)","Изменение свойств поля (скрыть, только для чтения, разрешение и т.д.)"
"Change field properties (hide, readonly, permission etc.)","Изменение свойств поля (скрыть, только для чтения, доступ и т.д.)"
Chat,Чат
Check,чек
Check / Uncheck roles assigned to the User. Click on the Role to find out what permissions that Role has.,"Отметить / Отменить роли, назначенные пользователю. Нажмите на роли, чтобы узнать, с какими эта роль."
@@ -190,10 +190,10 @@ Column Break,Разрыв столбца
Comment,Комментарий
Comment By,Комментарий По
Comment By Fullname,Комментарий По FULLNAME
Comment Date,Комментарий Дата
Comment Date,Дата комментария
Comment Docname,Комментарий DOCNAME
Comment Doctype,Комментарий DOCTYPE
Comment Time,Комментарий время
Comment Time,Время комментария
Comments,Комментарии
Communication,Общение
Communication Medium,Связь Средний
@@ -211,13 +211,13 @@ Content web page.,Содержимое веб-страницы.
Controller,Регулятор
Copy,Копировать
Copyright,Авторское право
Core,Центральная территория
Core,Центр управления
Could not connect to outgoing email server,Не удалось подключиться к сервера исходящей почты
Could not find {0},Не удалось найти {0}
Count,Считать
Country,Страна
Create,Создать
Create a new {0},Создать новую {0}
Create a new {0},Создать новый {0}
Created Custom Field {0} in {1},Дата создания настраиваемого поля {0} в {1}
Created Customer Issue,Дата выпуска клиентов
Created Opportunity,Дата Возможность
@@ -239,14 +239,14 @@ Customized HTML Templates for printing transctions.,Индивидуальные
Daily Event Digest is sent for Calendar Events where reminders are set.,"Ежедневно событие Дайджест направляется на Календарь событий, где установлены напоминания."
Danger,Опасность
Data,Данные
Data Import / Export Tool,Импорт / Экспорт данных инструментов
Data Import Tool,Данные Инструмент импорта
Data Import / Export Tool,Инструмент Импорта/Экспорта данных
Data Import Tool,Инструмент импорта данных
Data missing in table,Данные отсутствует в таблице
Date,Дата
Date Change,Дата Изменение
Date Changed,Дата Изменен
Date Change,Дата Изменения
Date Changed,Изменен
Date Format,Формат даты
Date and Number Format,Дата и номер Формат
Date and Number Format,Настройки времени и валюты
Date must be in format: {0},Дата должна быть в формате: {0}
Datetime,Datetime
Days in Advance,Дней
@@ -267,9 +267,9 @@ Descending,По убыванию
Description,Описание
Description and Status,Описание и статус
"Description for listing page, in plain text, only a couple of lines. (max 140 characters)","Описание для листинга странице, в виде обычного текста, только пару строк. (Макс. 140 символов)"
Description for page header.,Описание для заголовка страницы.
Description for page header.,Описание заголовка страницы.
Desktop,Настольный
Details,Детали
Details,Подробности
Did not add,Не добавить
Did not cancel,Не отменить
Did not find {0} for {0} ({1}),Не нашли {0} {0} ({1})
@@ -284,8 +284,8 @@ Display,Показать
Display Settings,Настройки отображения
Display in the sidebar of this Website Route node,Показать в боковой панели этого веб-сайта Маршрут узла
Do not allow user to change after set the first time,Не позволяйте пользователю изменять после установить в первый раз
Doc Status,Док Статус
DocField,DocField
Doc Status,Статус документа
DocField,Поле документа
DocPerm,DocPerm
DocType,DocType
DocType Details,DocType Подробнее
@@ -302,11 +302,11 @@ Document is only editable by users of role,Документ может реда
Documentation,Документация
Documents,Документация
Download,Скачать
Download Backup,Скачать Резервное копирование
Download Backup,Скачать резервную копию
Download link for your backup will be emailed on the following email address:,Ссылка на загрузку для резервного копирования будет выслан на электронный адрес:
Drafts,Черновики
Drag to sort columns,Перетащите для сортировки столбцов
Due Date,Дата исполнения
Due Date,Дата выполнения
Duplicate name {0} {1},Дубликат имя {0} {1}
Dynamic Link,Dynamic Link
ERPNext Demo,ERPNext Демо
@@ -393,12 +393,12 @@ Fieldname {0} appears multiple times in rows {1},Fieldname {0} нескольк
Fields,Поля
"Fields separated by comma (,) will be included in the<br /><b>Search By</b> list of Search dialog box","Поля отделяются запятой (,) будут включены в <br /> <b> Поиск По </ B> список диалоговом окне Поиск"
Fieldtype cannot be changed from {0} to {1} in row {2},FieldType не может быть изменен от {0} до {1} в строке {2}
File,Файла
File,Файл
File Data,Файл данных
File Name,Имя файла
File Size,Размер файла:
File URL,URL файла
File not attached,Файл не прилагается
File not attached,Файл не прикреплен
File size exceeded the maximum allowed size of {0} MB,Размер файла превысил максимально допустимый размер {0} МБ
Fill Screen,Заполнить экран
Filter,Фильтр
@@ -414,9 +414,9 @@ Font Size,Размер шрифта
Font Size (Text),Размер шрифта (Текст)
Fonts,Шрифты
Footer,Подвал
Footer Background,Footer фона
Footer Background,Фон подвала
Footer Items,Footer товары
Footer Text,Сноска
Footer Text,Текст подвала
For DocType,Для DocType
"For Links, enter the DocType as rangeFor Select, enter list of Options separated by comma","Для Ссылки, введите DocType как диапазон Для Select, введите список опций через запятую"
"For comparative filters, start with","Для сравнения фильтров, начните с"
@@ -428,7 +428,7 @@ Forgot Password,Забыли пароль
Forgot Password?,Забыли пароль?
Form,Форма
Forum,Форум
Forums,Форум
Forums,Форумы
Forward To Email Address,Вперед на электронный адрес
Frappe Framework,Фраппе Framework
Friday,Пятница
@@ -476,7 +476,7 @@ Hide Copy,Скрыть Копировать
Hide Heading,Свернуть Заголовок
Hide Toolbar,Скрыть панель инструментов
Hide the sidebar,Скрыть боковую панель
High,Высокая
High,Высокий
Highlight,Выделить
History,История
Home Page,Домашняя Страница
@@ -491,16 +491,16 @@ Icon will appear on the button,Иконка появится на кнопку
If non standard port (e.g. 587),"Если, не стандартный порт (например, 587)"
"If these instructions where not helpful, please add in your suggestions on GitHub Issues.","Если эти инструкции, где не помогает, пожалуйста, добавьте в ваши предложения по вопросам GitHub."
"If you set this, this Item will come in a drop-down under the selected parent.","Если вы установите это, этот предмет придет в раскрывающемся списке под выбранной родителя."
Ignore User Permissions,Игнорировать разрешений пользователя
Ignore User Permissions,Игнорировать разрешеник пользователя
"Ignoring Item {0}, because a group exists with the same name!","Игнорирование Пункт {0}, потому что группа существует с тем же именем!"
Image,Изображение
Image Link,Ссылка Изображения
Image Link,Ссылка на изображения
Import,Импорт
Import / Export Data,Импорт / Экспорт данных
Import / Export Data from .csv files.,Импорт / Экспорт данных из. CSV-файлов.
Import / Export Data from .csv files.,Импорт / Экспорт CSV файлов.
In,В
In Dialog,В диалоге
In Filter,В фильтр
In Filter,В фильтрe
In List View,В виде списка
In Report Filter,В Сообщить Фильтр
In points. Default is 9.,В точках. По умолчанию 9.
@@ -514,22 +514,22 @@ Insert After,Вставьте После
"Insert After field '{0}' mentioned in Custom Field '{1}', does not exist","Вставьте После области '{0}' упоминается в настраиваемого поля '{1}', не существует"
Insert Below,Вставить ниже
Insert Code,Вставить код
Insert Row,Insert Row
Insert Row,Вставить ряд
Insert Style,Вставьте стиль
Install Applications.,Установка приложений.
Installed,Установлен
Installer,Монтажник
Installer,Установщик
Int,Интервал
Integrations,Интеграции
Introduce your company to the website visitor.,Представьте вашу компанию на посетителя сайта.
Introduction,Введение
Introductory information for the Contact Us Page,Вводная информация для Контакты Page
Introductory information for the Contact Us Page,Вводная информация для страницы контактов
Invalid Email: {0},Неверный e-mail: {0}
Invalid Filter: {0},Неверный Фильтр: {0}
Invalid Home Page,Неверный Главная страница
Invalid Login,Неверный Войти
Invalid Home Page,Неверная Главная страница
Invalid Login,Неправильный Login
Invalid Outgoing Mail Server or Port,Неверный Сервер исходящей почты или порт
Invalid login or password,Неверный Войти или пароль
Invalid login or password,Неверный логин или пароль
Invalid recipient address,Неверный адрес получателя
Inverse,Обратный
Is Active,Активен
@@ -593,13 +593,13 @@ Login Id,Логин ID
Login not allowed at this time,Войти не допускается в это время
Logout,Выход
Long Text,Длинный текст
Low,Низкая
Low,Низкий
Lucida Grande,Lucida Grande
Mail Password,Почта Пароль
Main Section,Основной раздел
Make a new,Создайте новый
Make a new record,Сделать новый рекорд
Male,Муж
Make a new,Создать новый
Make a new record,Сделать новую запись
Male,Мужчина
Manage cloud backups on Dropbox,Управление облачных резервные копии на Dropbox
Manage uploaded files.,Управление загруженные файлы.
Mandatory,Обязательный
@@ -609,17 +609,17 @@ Master,Мастер
Max Attachments,Максимальное Вложения
Max width for type Currency is 100px in row {0},Максимальная ширина для типа валюта 100px в строке {0}
"Meaning of Submit, Cancel, Amend","Значение Представьте, Отменить, Изменить"
Medium,Средние булки
Medium,Средний
"Menu items in the Top Bar. For setting the color of the Top Bar, go to <a href=""#Form/Style Settings"">Style Settings</a>","Элементы меню на верхней панели. Для установки цвета верхней панели, перейдите в <a href=""#Form/Style настройки стиля Settings""> </ A>"
Merging is only possible between Group-to-Group or Leaf Node-to-Leaf Node,Слияние возможно только между Группа-в-группе или Leaf узел-листовой узел
Message,Сообщение
Message Examples,Примеры сообщений
Message Examples,Пример сообщения
Messages,Сообщения
Method,Метод
Middle Name (Optional),Отчество (необязательно)
Misc,Разное
Miscellaneous,Разное
Missing Values Required,Отсутствующие значения Обязательные
Missing Values Required,Не заполнены обязательные поля
Modern,"модные,"
Modified by,Изменено
Module,Модуль
@@ -640,7 +640,7 @@ Name,Имя
Name Case,"Название, наименование, обозначение дела"
Name and Description,Название и описание
Name is required,Имя обязательно
Name not permitted,Имя не допускается
Name not permitted,Имя не допускаетимо
Name not set via Prompt,Имя не установлено через строки
Name of the Document Type (DocType) you want this field to be linked to. e.g. Customer,"Название типа документа (DOCTYPE) вы хотите это поле, чтобы быть связаны с. например клиентов"
Name of {0} cannot be {1},Название {0} не может быть {1}
@@ -656,7 +656,7 @@ New value to be set,Новое значение будет установлен
New {0},Новый {0}
Next Communcation On,Следующая Communcation На
Next Record,Следующая запись
Next State,Следующая государственный
Next State,Следующее состояние
Next actions,Дальнейшие действия
No,Нет
No Action,Никаких действий
@@ -670,10 +670,10 @@ No User Permissions found.,Нет Разрешения пользователе
No data found,Данные не найдены
No file attached,Нет файла прилагается
No further records,Никаких дополнительных записей
No one,"Никто,"
No one,Никто
No permission to '{0}' {1},Нет доступа для '{0}' {1}
No permission to edit,Нет доступа для редактирования
No permission to write / remove.,Нет доступа для записи / Удалить.
No permission to write / remove.,Нет доступа для записи/удаления.
No records tagged.,Записи отсутствуют помечены.
No template found at path: {0},Не шаблон не найдено на пути: {0}
No {0} permission,Нет {0} разрешение
@@ -699,12 +699,12 @@ Not in Developer Mode! Set in site_config.json,Не в режиме разраб
Not permitted,Не допускается
"Note: For best results, images must be of the same size and width must be greater than height.","Примечание: Для достижения наилучших результатов, изображения должны быть того же размера и ширина должна быть больше, чем высота."
Note: Other permission rules may also apply,Примечание: Другие правила разрешений может также применяться
Note: maximum attachment size = 1mb,Примечание: Максимальный размер приложения = 1 Мб
Note: maximum attachment size = 1mb,Примечание: Максимальный размер прикрепленного файла = 1 Мб
Nothing to show,"Ничего, чтобы показать"
Nothing to show for this selection,"Ничего, чтобы показать для этого выбора"
Notification Count,Граф Уведомление
Notify by Email,Сообщите по электронной почте
Number Format,Number Формат
Notify by Email,Уведомление по почте
Number Format,Числовой\валютный формат
Old Parent,Старый родительский
On,Вкл
"Once you have set this, the users will only be able access documents (eg. Blog Post) where the link exists (eg. Blogger).","После установки этого, пользователи смогут только доступ к документам (напр. Сообщение в блоге), где связь существует (например, Blogger)."
@@ -713,8 +713,8 @@ Only Administrator can save a standard report. Please rename and save.,"Толь
Only Allow Edit For,Только Разрешить редактирования для
Only allowed {0} rows in one import,Только разрешенные {0} строк в одном импорта
Oops! Something went wrong,Упс! Что-то пошло не так.
Open,Открыть
Open Count,Открыть Граф
Open,Открыт
Open Count,Открыть счет
Open Sans,Открыть Sans
Open Source Web Applications for the Web,Веб-приложения с открытым исходным кодом для Web
Open a module or tool,Откройте модуль или инструмент
@@ -733,26 +733,26 @@ Org History,Org История
Org History Heading,Org История Заголовок
Original Message,Исходное сообщение
Other,Другое
Outgoing Email Settings,Исходящие Настройки электронной почты
Outgoing Email Settings,Настройки исходящей почты
Outgoing Mail Server,Сервер исходящей почты
Outgoing Mail Server not specified,Сервер исходящей почты не указано
Outgoing Mail Server not specified,Сервер исходящей почты не определен
Owner,Владелец
PDF Page Size,PDF Размер страницы
PDF Page Size,Размер PDF страницы
PDF Settings,Настройки PDF
POP3 Mail Server (e.g. pop.gmail.com),"Почты POP3-сервер (например, pop.gmail.com)"
Page,Страница
Page #{0} of {1},Страница # {0} {1}
Page Background,Фон страницы
Page HTML,Страница HTML
Page Header,Борьбе с коррупцией: США издание
Page Header,Заголовок страницы
Page Header Background,Заголовок страницы Фон
Page Header Text,Заголовок страницы текста
Page Links,Страница Ссылки
Page Header Text,Текст заголовка страницы
Page Links,Ссылки страницы
Page Name,Имя страницы
Page Role,Страница Роль
Page Text,Страница текста
Page Title,Название страницы
Page content,Содержание страницы
Page content,Содержимое страницы
Page not found,Страница не найдена
Page or Generator,Или генератор
Page url name (auto-generated),Название URL страницы (автоматически сгенерированный)
@@ -763,7 +763,7 @@ Parent Website Route,Родитель Сайт Маршрут
Parent Website Sitemap,Родитель Сайт Карта сайта
Participants,Участники
Password,Пароль
Password Updated,Пароль Обновлено
Password Updated,Пароль Обновлен
Password reset instructions have been sent to your email,Инструкции Восстановление пароля были отправлены на электронную почту
Patch,Исправление(Патч)
Patch Log,Патч Вход
@@ -772,18 +772,18 @@ Perm Level,Пермь Уровень
Permanently Cancel {0}?,Постоянно Отменить {0}?
Permanently Submit {0}?,Постоянно Представьте {0}?
Permanently delete {0}?,Навсегда удалить {0}?
Permission Level,Введено Уровень
Permission Levels,Уровни разрешений
Permission Rules,Введено Правила
Permission already set,Введено уже установлен
Permission Level,Уровень доступа
Permission Levels,Уровни доступа
Permission Rules,Правило доступа
Permission already set,Разрешение уже установленно
Permissions,Разрешения
Permissions Settings,Разрешения Настройки
Permissions Settings,Настройки доступа
Permissions are automatically translated to Standard Reports and Searches.,Разрешения автоматически переведен на стандартные отчеты и альбом.
"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.","Разрешения устанавливаются на ролей и типов документов (так называемые DOCTYPEs), установив права, как читать, писать, создавать, удалять, Представьте, Отменить, Изменить, Доклад, экспорт, импорт, печать, электронная почта и устанавливать разрешения пользователя."
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.,"Разрешения на более высоких уровнях это разрешения ""ровное поле '. Все поля имеют ""уровень разрешений"" набор против них и правилами, определенными в том, что разрешения применяются к полю. Это полезно в случае, если вы хотите, чтобы скрыть или сделать определенные поле только для чтения для определенных ролей."
"Permissions at level 0 are 'Document Level' permissions, i.e. they are primary for access to the document.","Разрешения на уровне 0 это разрешения ""уровне документа"", то есть они являются первичными для доступа к документу."
Permissions get applied on Users based on what Roles they are assigned.,"Разрешения быть применена на пользователей на основе того, что Роли они назначены."
Permitted Documents For User,Разрешенные Документы для пользователя
Permitted Documents For User,Разрешенные документы для пользователя
Person,Персона
Personal Info,Сведения о себе
Phone,Телефон
@@ -822,7 +822,7 @@ Post Topic,Сообщение Тема
Post already exists. Cannot add again!,Сообщение уже существует. Не можете добавить снова!
Post does not exist. Please add post!,"Сообщение не существует. Пожалуйста, добавьте пост!"
Post to user,Начать с пользователем
Posts,Записи
Posts,Посты
Previous Record,Предыдущая запись
Primary,Основной
Print,Печать
@@ -845,7 +845,7 @@ Properties,Недвижимость
Property,Свойство
Property Setter,Сеттер недвижимости
Property Type,Тип недвижимости
Public,Публичный
Public,Публично
Published,Опубликовано
Published On,Опубликовано на
Published on website at: {0},Опубликовано на веб-сайте по адресу: {0}
@@ -924,8 +924,8 @@ Same file has already been attached to the record,То же файл уже пр
Sample,Образец
Saturday,Суббота
Save,Сохранить
Scheduler Log,Планировщик Вход
Script,Сценарий
Scheduler Log,Лог планировщика
Script,Скрипт
Script Report,Сообщить скрипта
Script Type,Тип скрипта
Search,Поиск
@@ -933,8 +933,8 @@ Search Fields,Поиск Поля
Search in a document type,Поиск в тип документа
Search or type a command,Поиск либо введите команду
Section Break,Разделитель Секций
Security,Охрана
Security Settings,Безопасность
Security,Безопасность
Security Settings,Настройки безопасности
Select,Выбрать
Select All,Выбрать Все
Select Attachments,Выберите Вложения
@@ -943,9 +943,9 @@ Select Document Type or Role to start.,"Выбор типа документа
Select Print Format,Выберите Формат печати
Select Report Name,Выберите Имя отчета
Select Role,Выберите Роль
Select To Download:,Выберите на скачивание:
Select To Download:,Выберите для скачивания:
Select Type,Выберите тип
Select User or DocType to start.,Выберите пользователя или DocType начать.
Select User or DocType to start.,Сначала выберите пользователя или тип документа.
Select a Banner Image first.,Выберите изображение баннера в первую очередь.
Select an image of approx width 150px with a transparent background for best results.,Выберите изображение шириной около 150px с прозрачным фоном для достижения наилучших результатов.
Select dates to create a new ,
@@ -956,7 +956,7 @@ Select the label after which you want to insert new field.,"Выберите м
Send,Отправить
Send Alert On,Отправить оповещение о
Send As Email,Отправить по электронной почте
Send Email,Отправить на e-mail
Send Email,Отправить e-mail
Send Email Print Attachments as PDF (Recommended),Отправить E-mail Распечатать Вложения как PDF (рекомендуется)
Send Me A Copy,Отправить мне копию
Send Password,Отправить пароль
@@ -976,38 +976,38 @@ Series {0} already used in {1},Серия {0} уже используется в
Server,Сервер
Server & Credentials,Сервер и Полномочия
Server Error: Please check your server logs or contact tech support.,"Ошибка сервера: Пожалуйста, проверьте логи сервера или в службу технической поддержки."
Session Expired. Logging you out,Сессия просрочена. Вход вас
Session Expiry,Заседание Срок
Session Expiry in Hours e.g. 06:00,Заседание Срок в часах например 6:00
Session Expiry must be in format {0},Заседание Срок должен быть в формате {0}
Set Banner from Image,Баннер набор из изображения
Set Link,Установите Ссылка
Session Expired. Logging you out,Сессия просрочена. Зайдите заново
Session Expiry,Время сессии
Session Expiry in Hours e.g. 06:00,"Время сессии в часах, например 06:00"
Session Expiry must be in format {0},Время сессии должно быть в формате {0}
Set Banner from Image,Установить баннер из изображения
Set Link,Установите Ссылку
Set Login and Password if authentication is required.,"Набор Логин и пароль, если требуется аутентификация."
Set Only Once,Установлен только один раз
Set Password,Установите пароль
Set Permissions on Document Types and Roles,Установить разрешения на типов документов и роли
Set Permissions per User,Установка разрешений на пользователя
Set User Permissions,Задание разрешений пользователя
Set Value,Заданное значение
Set Value,Задать значение
"Set default format, page size, print style etc.","Установить формат по умолчанию, размер страницы, стиль печати и т.д."
Set numbering series for transactions.,Установите нумерации серии для сделок.
Set outgoing mail server.,Установить сервер исходящей почты.
Settings,Настройки
Settings for About Us Page.,Настройки для О нас страницы.
Settings for Contact Us Page.,Настройки для Контакты Page.
Setup,Настройка
Setup,Настройки
Setup > User,Настройка> Пользователь
Setup > User Permissions Manager,Настройка> Разрешения пользователей менеджер
Setup > User Permissions Manager,Настройка> Права пользователей
Setup Email Alert based on various criteria.,Настройка E-mail оповещения на основе различных критериев.
Setup of fonts and background.,Настройка шрифтов и фона.
"Setup of top navigation bar, footer and logo.",Настройка верхней панели навигации сноске и логотип.
"Setup of top navigation bar, footer and logo.","Настройка верхней панели, навигации, подвала и логотипа."
Short Bio,Краткая справка
Short Name,Краткое Имя
Shortcut,Комбинация клавиш
Short Name,Короткое Имя
Shortcut,Ярлык
Show / Hide Modules,Показать / скрыть модули
Show Print First,Показать печатаются в первую очередь
Show Tags,Показать Теги
Show or hide modules globally.,Показать или скрыть модули во всем мире.
Show or hide modules globally.,Показать или скрыть модули глобально
Show rows with zero values,Показать строки с нулевыми значениями
Show tags,Показать Теги
Show this field as title,Показать это поле как название
@@ -1018,18 +1018,18 @@ Sidebar Links for Home Page only,Sidebar Ссылки для домашней с
Sign Up,Зарегистрироваться
Sign in,Войти
Sign up,Зарегистрироваться
Single Post (article).,Сообщение отдельно (статья).
Single Post (article).,Один пост(статья).
Single Types have only one record no tables associated. Values are stored in tabSingles,"Холост Типы нет только одна запись не таблицы, связанные. Значения сохраняются в tabSingles"
Sitemap Browser,Карта сайта Обозреватель
Slideshow,Слайд-шоу
Slideshow Items,Слайд-шоу товары
Slideshow Name,Слайд-шоу Имя
Small Text,Небольшой текст
Small Text,Маленьикий текст
Social Login Keys,Социальная Вход Ключи
Solid background color (default light gray),Твердые цвет фона (по умолчанию светло-серый)
Sorry we were unable to find what you were looking for.,"К сожалению, мы не смогли найти то, что вы искали."
Sorry you are not permitted to view this page.,"Жаль, что вы не имеете права просматривать эту страницу."
Sort By,Сортировка
Sort By,Сортировать по
Sort Field,Сортировать поле
Sort Order,Порядок сортировки
Standard,Стандартный
@@ -1038,16 +1038,16 @@ Standard Reply,Стандартный ответ
Standard Reports,Стандартные отчеты
Standard replies to common queries.,Стандартный отвечает на распространенные вопросы.
Start Report For,Начните Отчет для
Starts on,Запускает на
Starts on,Начало
State,Состояние
States,Штаты
"States for workflow (e.g. Draft, Approved, Cancelled).","Штаты для рабочего процесса (например, проекты, одобрен, Отменено)."
States,Состояния
"States for workflow (e.g. Draft, Approved, Cancelled).","Состояния для рабочего процесса (например, черновик, опубликован, отменен)."
Static File Timestamp,Статический Отметка времени файла
Status,Статус
Step 1: Set the name and save.,Шаг 1: Установить имя и сохранить.
Step 2: Set Letterhead content.,Шаг 2: Установите бланков содержание.
Step 1: Set the name and save.,Шаг 1: Введите имя и сохраните
Step 2: Set Letterhead content.,Шаг 2: Введите содержание бланка.
Style,Стили
Style Settings,Стиль Настройки
Style Settings,Настройки стилей
"Style represents the button color: Success - Green, Danger - Red, Inverse - Black, Primary - Dark Blue, Info - Light Blue, Warning - Orange","Стиль представляет цвет кнопки: Успех - Зеленый, Danger - красный, Обратная - черный, Первичная - темно-синий, информация - светло-голубой, Предупреждение - Оранжевый"
Sub-domain provided by erpnext.com,Суб-домен предоставляется erpnext.com
Subdomain,Домен
@@ -1056,15 +1056,15 @@ Submit,Отправить
Submit an Issue,Представьте о проблеме
Submitted,Представленный
Submitted Document cannot be converted back to draft. Transition row {0},Представленные Документ не может быть преобразован обратно в проект. Переход строка {0}
Success,Успех
Success,Успешно
Suggestion,Предложение
Sunday,Воскресенье
Switch to Website,Перейти на сайт
Sync Inbox,Синхронизация Входящие
Sync Inbox,Синхронизировать Входящие
System,Система
System Settings,Настройки системы
System User,Система Пользователь
System and Website Users,Системные и сайта Пользователи
System User,Пользователь системы
System and Website Users,Пользователи сайта и системы
System generated mails will be sent from this email id.,Система генерируемые письма будут отправлены из этого электронный идентификатор.
Table,Стол
Table {0} cannot be empty,Таблица {0} не может быть пустым
@@ -1106,16 +1106,16 @@ Thursday,Четверг
Tile,Плитка
Time,Время
Time Zone,Часовой Пояс
Timezone,Часовой пояс
Title,Как к вам обращаться?
Timezone,Временная зона
Title,Заголовок
Title / headline of your page,Название / заголовок вашей страницы
Title Case,Название дела
Title Field,Поле заголовка
Title Field,Название поля
Title Prefix,Название Приставка
Title field must be a valid fieldname,Название поля должно быть допустимым имя_поля
Title is required,Укажите название
To,До
To Do,Делать
To Do,ToDo лист
"To format columns, give column labels in the query.","Для форматирования столбцов, дать заголовки столбцов в запросе."
"To give acess to a role for only specific records, check the 'Apply User Permissions'. User Permissions are used to limit users with such role to specific records.","Чтобы дать широкий доступ к роли только определенных записей, проверить ""Применить разрешений пользователя. Разрешения пользователей используются для ограничения пользователей с такой роли конкретных записей."
"To run a test add the module name in the route after '{0}'. For example, {1}","Чтобы запустить тест добавить имя модуля в маршруте после '{0}'. Например, {1}"
@@ -1205,7 +1205,7 @@ Website Script,Сайт скрипта
Website Settings,Настройки сайта
Website Slideshow,Сайт Слайд-шоу
Website Slideshow Item,Сайт Слайд-шоу Пункт
Website User,Сайт пользователя
Website User,Пользователь сайта
Wednesday,Среда
Welcome email sent,"Добро пожаловать Письмо, отправленное"
"When you Amend a document after Cancel and save it, it will get a new number that is a version of the old number.","При Изменить документ после Отменить и сохранить его, он будет получать новый номер, который является версией старой числа."
@@ -1214,14 +1214,14 @@ Will be used in url (usually first name).,Будет использоватьс
With Groups,С группы
With Ledgers,С Ledgers
With Letterhead,На фирменном бланке
Workflow,Рабочие процессы
Workflow,Рабочий процесс
Workflow Action,Действия рабочего процесса
Workflow Action Name,Действия рабочего процесса Имя
Workflow Document State,Workflow государственный документ
Workflow Document States,Рабочий процесс Штаты Документ
Workflow Name,Название рабочий
Workflow State,Workflow государственный
Workflow State Field,Рабочий процесс Государственный поле
Workflow Name,Название рабочего процесса
Workflow State,Состояние рабочего процесса
Workflow State Field,Поле состояния рабочего процесса
Workflow Transition,Рабочий процесс перехода
Workflow Transitions,Workflow Переходы
Workflow will start after saving.,Рабочий процесс начнется после сохранения.
@@ -1360,7 +1360,8 @@ play-circle,играть круга
plus,А ТАКЖЕ
plus-sign,знак плюс
print,print
qrcode,QRCode
qrcode,"QR код
"
question-sign,Вопрос-знак
random,random
refresh,обновить
@@ -1379,7 +1380,7 @@ screenshot,Скриншот
search,поиск
share,ПОДЕЛИТЬСЯ
share-alt,Доля-альт
shopping-cart,торгово-корзина
shopping-cart,Корзина
signal,сигнал
star,звезда
star-empty,звезды пусто


+ 18
- 18
frappe/translations/tr.csv Wyświetl plik

@@ -14,18 +14,18 @@
<i>e.g. <strong>(55 + 434) / 4</strong> or <strong>=Math.sin(Math.PI/2)</strong>...</i>,<i> örneğin <strong> (55 + 434) / 4 </ strong> veya <strong> = Math.sin (Math.PI / 2) </ strong> ... </ i>
<i>module name...</i>,<i> modül adı ... </ i>
<i>text</i> <b>in</b> <i>document type</i>,<i> metin </ i> <b> </ b> belge türü </ i> <i>
A user can be permitted to multiple records of the same DocType.,Bir kullanıcı aynı DocType birden kayıtlarına müsaade edilebilir.
A user can be permitted to multiple records of the same DocType.,Bir kullanıcı aynı dosya tipi için birden fazla kayda onay verebilir.
About,Hakkında
About Us Settings,Hakkımızda Ayarları Hakkında
About Us Team Member,Hakkımızda Ekip Üyesi Hakkında
About Us Settings,Hakkımızda Ayarları
About Us Team Member,Ekip üyeleri hakkında
Action,Eylem
Actions,Eylemler
"Actions for workflow (e.g. Approve, Cancel).",Iş akışı için eylemleri (örneğin İptal Onayla).
"Actions for workflow (e.g. Approve, Cancel).","İş akışı için eylemler (örneğin İptal, Onayla)."
Add,Ekle
Add A New Rule,Yeni Kuralı Ekle
Add A User Permission,Bir Kullanıcı İzni ekle
Add Attachments,Ekler ekle
Add Bookmark,Yerimi ekle
Add A New Rule,Yeni Kural Ekle
Add A User Permission,Kullanıcı İzni Ekleyin
Add Attachments,Ekleri ekle
Add Bookmark,Yer imi ekle
Add CSS,CSS Ekle
Add Column,Sütun Ekle
Add Google Analytics ID: eg. UA-89XXX57-1. Please search help on Google Analytics for more information.,Google Analytics ID ekleyin: örn. UA-89XXX57-1. Daha fazla bilgi için Google Analytics yardım arayın.
@@ -35,7 +35,7 @@ Add Reply,Yanıt Ekle
Add Total Row,Toplam satır ekle
Add a New Role,Yeni Rol Ekle
Add a banner to the site. (small banners are usually good),Siteye bir afiş ekleyin. (Küçük afiş genellikle iyidir)
Add all roles,Tüm rolleri Ekle
Add all roles,Rol Ekleyin
Add attachment,Ek ekle
Add code as &lt;script&gt;,<script> Gibi kod ekle
Add custom javascript to forms.,Formlara özel javascript ekle.
@@ -110,22 +110,22 @@ Auto Name,Otomatik Ad
Auto generated,Otomatik oluşturulan
Avatar,Resim
Back to Login,Giriş Sayfasına Dön
Background Color,Arka Plan Rengi
Background Color,Arkaplan Rengi
Background Image,Arkaplan Resmi
Background Style,Arkaplan Stili
Banner,Banner
Banner HTML,Banner HTML
Banner Image,Banner Resmi
Banner is above the Top Menu Bar.,Banner Top Menu Bar üzerindedir.
Begin this page with a slideshow of images,Görüntülerin bir slayt gösterisi ile bu sayfayı başlayın
Begin this page with a slideshow of images,Bu sayfayı slayt gösterisi ile başlatın.
Beginning with,Ile başlayan
Belongs to,Ait
Bio,Bio
Bio,Biyo
Birth Date,Doğum tarihi
Blog Category,Blog Kategorisi
Blog Intro,Intro Blog
Blog Intro,Blog girişi
Blog Introduction,Blog Tanıtım
Blog Post,Blog Post
Blog Post,Blog postası
Blog Settings,Blog Ayarları
Blog Title,Blog Başlığı
Blogger,Blogcu
@@ -1262,11 +1262,11 @@ arrow-right,ok-sağ
arrow-up,ok-up
asterisk,yıldız işareti
backward,geri
ban-circle,ban-daire
ban-circle,'Giriş izni yok' simgesi
barcode,Barkod
beginning with,ile başlayan
bell,çan
bold,cesur
bold,kalın
book,kitap
bookmark,imi
briefcase,evrak çantası
@@ -1413,8 +1413,8 @@ volume-up,hacim-up
warning-sign,uyarı işareti
wrench,İngiliz anahtarı
yyyy-mm-dd,yyyy-aa-gg
zoom-in,zoom-in
zoom-out,zoom-out
zoom-in,Yakınlaştırın
zoom-out,Uzaklaştırın
{0} List,{0} Listesi
{0} added,{0} eklendi
{0} by {1},{0} {1}


+ 14
- 7
frappe/utils/jinja.py Wyświetl plik

@@ -1,7 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# MIT License. See license.txt
from __future__ import unicode_literals
from jinja2 import Template

def get_jenv():
import frappe
@@ -24,13 +23,11 @@ def get_template(path):
return get_jenv().get_template(path)

def render_template(template, context):
if not "frappe" in context:
context.update(get_allowed_functions_for_jenv())
template = Template(template)
return template.render(**context)
return get_jenv().from_string(template).render(context)

def get_allowed_functions_for_jenv():
import frappe
import frappe.utils
import frappe.utils.data

datautils = {}
@@ -43,19 +40,29 @@ def get_allowed_functions_for_jenv():
# only allow functions
datautils[key] = obj

if "_" in frappe.local.form_dict:
del frappe.local.form_dict["_"]

return {
# make available limited methods of frappe
"frappe": {
"_": frappe._,
"format_value": frappe.format_value,
"format_date": frappe.utils.data.global_date_format,
"form_dict": frappe.local.form_dict,
"local": frappe.local,
"get_hooks": frappe.get_hooks,
"get_meta": frappe.get_meta,
"get_doc": frappe.get_doc,
"db": {
"get_value": frappe.db.get_value,
},
"get_list": frappe.get_list,
"get_all": frappe.get_all,
"utils": datautils,
"user": frappe.session.user,
"date_format": frappe.db.get_default("date_format") or "yyyy-mm-dd"
"user": frappe.local.session.user,
"date_format": frappe.db.get_default("date_format") or "yyyy-mm-dd",
"get_gravatar": frappe.utils.get_gravatar
},
"get_visible_columns": \
frappe.get_attr("frappe.templates.pages.print.get_visible_columns"),


+ 8
- 0
frappe/utils/user.py Wyświetl plik

@@ -173,6 +173,14 @@ def get_user_fullname(user):
fullname = frappe.db.sql("SELECT CONCAT_WS(' ', first_name, last_name) FROM `tabUser` WHERE name=%s", (user,))
return fullname and fullname[0][0] or ''

def get_fullname_and_avatar(user):
first_name, last_name, avatar = frappe.db.get_value("User",
user, ["first_name", "last_name", "user_image"])
return {
"fullname": " ".join(filter(None, [first_name, last_name])),
"avatar": avatar
}

def get_system_managers(only_name=False):
"""returns all system manager's user details"""
import email.utils


+ 10
- 2
frappe/website/context.py Wyświetl plik

@@ -56,14 +56,22 @@ def build_context(sitemap_options):
if context.doc:
context.update(context.doc.as_dict())
if hasattr(context.doc, "get_context"):
context.update(context.doc.get_context(context) or {})
ret = context.doc.get_context(context)
if ret:
context.update(ret)

for prop in ("no_cache", "no_sitemap"):
if not prop in context:
context[prop] = getattr(context.doc, prop, False)

elif context.controller:
module = frappe.get_module(context.controller)

if module:
if hasattr(module, "get_context"):
context.update(module.get_context(context) or {})
ret = module.get_context(context)
if ret:
context.update(ret)
if hasattr(module, "get_children"):
context.get_children = module.get_children



+ 44
- 13
frappe/website/doctype/web_form/web_form.json Wyświetl plik

@@ -144,6 +144,14 @@
"search_index": 0,
"set_only_once": 0
},
{
"depends_on": "allow_multiple",
"fieldname": "allow_delete",
"fieldtype": "Check",
"label": "Allow Delete",
"permlevel": 0,
"precision": ""
},
{
"depends_on": "login_required",
"fieldname": "allow_comments",
@@ -151,6 +159,25 @@
"label": "Allow Comments",
"permlevel": 0
},
{
"fieldname": "fields",
"fieldtype": "Section Break",
"label": "Fields",
"permlevel": 0
},
{
"fieldname": "introduction_text",
"fieldtype": "Text",
"label": "Introduction",
"permlevel": 0
},
{
"fieldname": "web_form_fields",
"fieldtype": "Table",
"label": "Web Form Fields",
"options": "Web Form Field",
"permlevel": 0
},
{
"fieldname": "actions",
"fieldtype": "Section Break",
@@ -172,23 +199,27 @@
"permlevel": 0
},
{
"fieldname": "fields",
"fieldname": "advanced",
"fieldtype": "Section Break",
"label": "Fields",
"permlevel": 0
"label": "Advanced",
"permlevel": 0,
"precision": ""
},
{
"fieldname": "introduction_text",
"fieldtype": "Text",
"label": "Introduction",
"permlevel": 0
"description": "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`",
"fieldname": "web_page_link_text",
"fieldtype": "Data",
"label": "Web Page Link Text",
"permlevel": 0,
"precision": ""
},
{
"fieldname": "web_form_fields",
"fieldtype": "Table",
"label": "Web Form Fields",
"options": "Web Form Field",
"permlevel": 0
"description": "In JSON as <pre>[{\"title\":\"Jobs\", \"name\":\"jobs\"}]</pre>",
"fieldname": "breadcrumbs",
"fieldtype": "Small Text",
"label": "Breadcrumbs",
"permlevel": 0,
"precision": ""
}
],
"hide_heading": 0,
@@ -199,7 +230,7 @@
"is_submittable": 0,
"issingle": 0,
"istable": 0,
"modified": "2014-09-03 14:47:17.181589",
"modified": "2014-10-15 11:47:58.064235",
"modified_by": "Administrator",
"module": "Website",
"name": "Web Form",


+ 18
- 3
frappe/website/doctype/web_form/web_form.py Wyświetl plik

@@ -20,8 +20,10 @@ class WebForm(WebsiteGenerator):
if self.allow_multiple:
meta = frappe.get_meta(self.doc_type)
context.items = frappe.db.sql("""select name,
{0} as title, creation as timestamp
from `tab{1}` where owner=%s order by creation desc""".format(meta.title_field or "name",
{0} as title, creation
from `tab{1}`
where owner=%s and docstatus = 0
order by creation desc""".format(meta.title_field or "name",
self.doc_type), frappe.session.user, as_dict=True)
else:
name = frappe.db.get_value(self.doc_type, {"owner": frappe.session.user},
@@ -33,9 +35,12 @@ class WebForm(WebsiteGenerator):
context.doc = frappe.get_doc(self.doc_type, frappe.form_dict.name)

context.types = [f.fieldtype for f in self.web_form_fields]

return context

def get_parents(self, context):
if self.breadcrumbs:
return json.loads(self.breadcrumbs)

@frappe.whitelist(allow_guest=True)
def accept():
args = frappe.form_dict
@@ -98,3 +103,13 @@ def accept():
doc.set(fieldname, filedoc.file_url)

doc.save()

@frappe.whitelist()
def delete(web_form, name):
web_form = frappe.get_doc("Web Form", web_form)

owner = frappe.db.get_value(web_form.doc_type, name, "owner")
if frappe.session.user == owner and web_form.allow_delete:
frappe.delete_doc(web_form.doc_type, name, ignore_permissions=True)
else:
raise frappe.PermissionError, "Not Allowed"

+ 35
- 13
frappe/website/doctype/web_page/web_page.py Wyświetl plik

@@ -10,6 +10,7 @@ from frappe.website.doctype.website_slideshow.website_slideshow import get_slide
from frappe.website.utils import find_first_image, get_comment_list
from markdown2 import markdown
from frappe.utils.jinja import render_template
from jinja2.exceptions import TemplateSyntaxError

class WebPage(WebsiteGenerator):
save_versions = True
@@ -32,8 +33,11 @@ class WebPage(WebsiteGenerator):
context.comment_list = get_comment_list(self.doctype, self.name)

if self.template_path:
# render dynamic context (if .py file exists)
context = self.get_dynamic_context(frappe._dict(context))

# load content from template
context.update(get_static_content(self, context))
get_static_content(self, context)
else:
context.update({
"style": self.css or "",
@@ -52,10 +56,29 @@ class WebPage(WebsiteGenerator):

def render_dynamic(self, context):
# dynamic
if context.main_section and "<!-- render-jinja -->" in context.main_section:
context["main_section"] = render_template(context.main_section,
{"doc": self, "frappe": frappe})
context["no_cache"] = 1
if context.main_section and ("<!-- render-jinja -->" in context.main_section) \
or ("{{" in context.main_section):
try:
context["main_section"] = render_template(context.main_section,
context)
context["no_cache"] = 1
except TemplateSyntaxError:
pass

def get_dynamic_context(self, context):
template_path_base = self.template_path.rsplit(".", 1)[0]
template_module = os.path.dirname(os.path.relpath(self.template_path,
os.path.join(frappe.get_app_path("frappe"),"..", "..")))\
.replace(os.path.sep, ".") + "." + frappe.scrub(template_path_base.rsplit(os.path.sep, 1)[1])

try:
method = template_module.split(".", 1)[1] + ".get_context"
get_context = frappe.get_attr(method)
ret = get_context(context)
if ret:
context = ret
except ImportError: pass
return context

def set_metatags(self, context):
context.metatags = {
@@ -69,7 +92,6 @@ class WebPage(WebsiteGenerator):


def get_static_content(doc, context):
d = frappe._dict({})
with open(doc.template_path, "r") as contentfile:
content = unicode(contentfile.read(), 'utf-8')

@@ -79,24 +101,24 @@ def get_static_content(doc, context):
first_line = lines[0].strip()

if first_line.startswith("# "):
d.title = first_line[2:]
context.title = first_line[2:]
content = "\n".join(lines[1:])

content = markdown(content)

d.main_section = unicode(content.encode("utf-8"), 'utf-8')
if not d.title:
d.title = doc.name.replace("-", " ").replace("_", " ").title()
context.main_section = unicode(content.encode("utf-8"), 'utf-8')
if not context.title:
context.title = doc.name.replace("-", " ").replace("_", " ").title()

doc.render_dynamic(d)
doc.render_dynamic(context)

for extn in ("js", "css"):
fpath = doc.template_path.rsplit(".", 1)[0] + "." + extn
if os.path.exists(fpath):
with open(fpath, "r") as f:
d["css" if extn=="css" else "javascript"] = f.read()
context["css" if extn=="css" else "javascript"] = f.read()

return d
return context

def check_broken_links():
cnt = 0


+ 13
- 16
frappe/website/js/website.js Wyświetl plik

@@ -93,6 +93,15 @@ $.extend(frappe, {
$(opts.btn).prop("disabled", false);
}

if (data._server_messages) {
var server_messages = (JSON.parse(data._server_messages || '[]')).join("<br>");
if(opts.error_msg) {
$(opts.error_msg).html(server_messages).toggle(true);
} else {
frappe.msgprint(server_messages);
}
}

if(data.exc) {
if(opts.btn) {
$(opts.btn).addClass("btn-danger");
@@ -108,14 +117,6 @@ $.extend(frappe, {
console.log(data.exc);
}

if (data._server_messages) {
var server_messages = (JSON.parse(data._server_messages || '[]')).join("<br>");
if(opts.error_msg) {
$(opts.error_msg).html(server_messages).toggle(true);
} else {
frappe.msgprint(server_messages);
}
}
} else{
if(opts.btn) {
$(opts.btn).addClass("btn-success");
@@ -347,19 +348,15 @@ $.extend(frappe, {
!navigator.userAgent.match(/((iPod|iPhone|iPad).+\bOS\s+[1-4]|WebApps\/.+CFNetwork)/))
},
get_pathname: function() {
return location.pathname && location.pathname.split("/")[1].split(".")[0];
return location.pathname;
},
page_ready_events: {},
ready: function(fn) {
if(!frappe.page_ready_events[frappe.get_pathname()]) {
frappe.page_ready_events[frappe.get_pathname()] = [];
}
frappe.page_ready_events[frappe.get_pathname()].push(fn);
frappe.page_ready_events[frappe.get_pathname()] = fn;
},
trigger_ready: function() {
$.each((frappe.page_ready_events[frappe.get_pathname()] || []), function(i, fn) {
fn();
});
var ready = frappe.page_ready_events[frappe.get_pathname()];
ready && ready();
},
make_navbar_active: function() {
var pathname = window.location.pathname;


+ 1
- 1
frappe/website/render.py Wyświetl plik

@@ -29,7 +29,7 @@ def render(path, http_status_code=None):
frappe.local.form_dict.name = name
elif doctype:
path = "list"
frappe.local.form_dict.type = doctype
frappe.local.form_dict.doctype = doctype
else:
path = "404"
http_status_code = e.http_status_code


+ 7
- 8
frappe/website/statics.py Wyświetl plik

@@ -74,14 +74,13 @@ class sync(object):
break

# other files
for extn in ("md", "html"):
fname = page_name + "." + extn
if fname in files:
self.sync_file(fname, os.path.join(basepath, fname), i)
break
else:
if page_name not in folders:
print page_name + " not found in " + basepath
if page_name + ".md" in files:
self.sync_file(page_name + ".md", os.path.join(basepath, page_name + ".md"), i)
elif page_name + ".html" in files:
self.sync_file(page_name + ".html", os.path.join(basepath, page_name + ".html"), i)
else:
if page_name not in folders:
print page_name + " not found in " + basepath

def sync_alphabetically(self, basepath, folders, files):
files.sort()


+ 3
- 0
frappe/website/template.py Wyświetl plik

@@ -43,6 +43,9 @@ def render_blocks(context):
out["header"] = "<h2>" + out["header"] + "</h2>"

if "breadcrumbs" not in out:
if context.doc and hasattr(context.doc, "get_parents"):
context.parents = context.doc.get_parents(context)

out["breadcrumbs"] = scrub_relative_urls(
frappe.get_template("templates/includes/breadcrumbs.html").render(context))



+ 1
- 1
frappe/website/utils.py Wyświetl plik

@@ -30,7 +30,7 @@ def can_cache(no_cache=False):

def get_comment_list(doctype, name):
return frappe.db.sql("""select
comment, comment_by_fullname, creation
comment, comment_by_fullname, creation, comment_by
from `tabComment` where comment_doctype=%s
and comment_docname=%s order by creation""", (doctype, name), as_dict=1) or []



+ 10
- 7
frappe/website/website_generator.py Wyświetl plik

@@ -7,15 +7,15 @@ from frappe.model.document import Document
from frappe.model.naming import append_number_if_name_exists
from frappe.website.utils import cleanup_page_name, get_home_page
from frappe.website.render import clear_cache
from frappe.utils import now
from frappe.modules import get_module_name
from frappe.website.router import get_page_route

class WebsiteGenerator(Document):
page_title_field = "name"
def autoname(self):
self.name = self.get_page_name()
append_number_if_name_exists(self)
if self.meta.autoname != "hash":
self.name = self.get_page_name()
append_number_if_name_exists(self)

def onload(self):
self.get("__onload").website_route = self.get_route()
@@ -38,6 +38,9 @@ class WebsiteGenerator(Document):
self.get_page_name()
return make_route(self)

def clear_cache(self):
clear_cache(self.get_route())

def get_page_name(self):
return self.get_or_make_page_name()

@@ -51,12 +54,12 @@ class WebsiteGenerator(Document):

def before_rename(self, oldname, name, merge):
self._local = self.get_route()
clear_cache(self.get_route())
self.clear_cache()

def after_rename(self, olddn, newdn, merge):
if getattr(self, "_local"):
self.update_routes_of_descendants(self._local)
clear_cache(self.get_route())
self.clear_cache()

def on_trash(self):
clear_cache(self.get_route())
@@ -98,7 +101,7 @@ class WebsiteGenerator(Document):
"controller": get_module_name(self.doctype, self.meta.module),
"template": self.template,
"parent_website_route": self.get("parent_website_route", ""),
"page_title": self.get(self.page_title_field)
"page_title": getattr(self, "page_title", None) or self.get(self.page_title_field)
})

self.update_permissions(route)
@@ -112,7 +115,7 @@ class WebsiteGenerator(Document):
else:
route.public_read = 1

def get_parents(self):
def get_parents(self, context):
parents = []
parent = self
while parent:


+ 1
- 1
setup.py Wyświetl plik

@@ -1,7 +1,7 @@
from setuptools import setup, find_packages
import os

version = "4.4.6"
version = "4.5.0"

with open("requirements.txt", "r") as f:
install_requires = f.readlines()


Ładowanie…
Anuluj
Zapisz