Improved translations.
This commit is contained in:
parent
12a803b638
commit
eb2c447e41
17 changed files with 96 additions and 57 deletions
|
@ -678,6 +678,15 @@ class App.Sidebar extends App.Controller
|
||||||
@showSidebar()
|
@showSidebar()
|
||||||
|
|
||||||
class App.Wizard extends App.Controller
|
class App.Wizard extends App.Controller
|
||||||
|
constructor: ->
|
||||||
|
super
|
||||||
|
|
||||||
|
# rerender view, e. g. on langauge change
|
||||||
|
@bind('ui:rerender', =>
|
||||||
|
@render()
|
||||||
|
'wizard'
|
||||||
|
)
|
||||||
|
|
||||||
goToSlide: (e) =>
|
goToSlide: (e) =>
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
slide = $(e.target).data('slide')
|
slide = $(e.target).data('slide')
|
||||||
|
|
|
@ -14,8 +14,8 @@ class Index extends App.Controller
|
||||||
html = $( App.view('profile/password')() )
|
html = $( App.view('profile/password')() )
|
||||||
|
|
||||||
configure_attributes = [
|
configure_attributes = [
|
||||||
{ name: 'password_old', display: 'Current Password', tag: 'input', type: 'password', limit: 100, null: false, class: 'input', single: true },
|
{ name: 'password_old', display: 'Current password', tag: 'input', type: 'password', limit: 100, null: false, class: 'input', single: true },
|
||||||
{ name: 'password_new', display: 'New Password', tag: 'input', type: 'password', limit: 100, null: false, class: 'input', },
|
{ name: 'password_new', display: 'New password', tag: 'input', type: 'password', limit: 100, null: false, class: 'input', },
|
||||||
]
|
]
|
||||||
|
|
||||||
@form = new App.ControllerForm(
|
@form = new App.ControllerForm(
|
||||||
|
|
|
@ -34,7 +34,7 @@ class App.UiElement.postmaster_set
|
||||||
{
|
{
|
||||||
value: 'x-zammad-ignore'
|
value: 'x-zammad-ignore'
|
||||||
name: 'Ignore Message'
|
name: 'Ignore Message'
|
||||||
options: { true: 'Yes', false: 'No'}
|
options: { true: 'yes', false: 'no'}
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
expert:
|
expert:
|
||||||
|
@ -43,7 +43,7 @@ class App.UiElement.postmaster_set
|
||||||
{
|
{
|
||||||
value: 'x-zammad-article-internal'
|
value: 'x-zammad-article-internal'
|
||||||
name: 'Internal'
|
name: 'Internal'
|
||||||
options: { true: 'Yes', false: 'No'}
|
options: { true: 'yes', false: 'no'}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 'x-zammad-article-type_id'
|
value: 'x-zammad-article-type_id'
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
class Index extends App.ControllerContent
|
class Index extends App.Wizard
|
||||||
className: 'getstarted fit'
|
className: 'getstarted fit'
|
||||||
|
|
||||||
constructor: ->
|
constructor: ->
|
||||||
|
@ -130,7 +130,7 @@ App.Config.set( 'getting_started/auto_wizard', AutoWizard, 'Routes' )
|
||||||
App.Config.set( 'getting_started/auto_wizard/:token', AutoWizard, 'Routes' )
|
App.Config.set( 'getting_started/auto_wizard/:token', AutoWizard, 'Routes' )
|
||||||
|
|
||||||
|
|
||||||
class Admin extends App.ControllerContent
|
class Admin extends App.Wizard
|
||||||
className: 'getstarted fit'
|
className: 'getstarted fit'
|
||||||
events:
|
events:
|
||||||
'submit form': 'submit'
|
'submit form': 'submit'
|
||||||
|
@ -505,7 +505,7 @@ class EmailNotification extends App.Wizard
|
||||||
App.Config.set( 'getting_started/email_notification', EmailNotification, 'Routes' )
|
App.Config.set( 'getting_started/email_notification', EmailNotification, 'Routes' )
|
||||||
|
|
||||||
|
|
||||||
class Channel extends App.ControllerContent
|
class Channel extends App.Wizard
|
||||||
className: 'getstarted fit'
|
className: 'getstarted fit'
|
||||||
|
|
||||||
constructor: ->
|
constructor: ->
|
||||||
|
@ -558,7 +558,7 @@ class Channel extends App.ControllerContent
|
||||||
|
|
||||||
App.Config.set( 'getting_started/channel', Channel, 'Routes' )
|
App.Config.set( 'getting_started/channel', Channel, 'Routes' )
|
||||||
|
|
||||||
class ChannelEmailPreConfigured extends App.ControllerContent
|
class ChannelEmailPreConfigured extends App.Wizard
|
||||||
className: 'getstarted fit'
|
className: 'getstarted fit'
|
||||||
|
|
||||||
constructor: ->
|
constructor: ->
|
||||||
|
@ -895,7 +895,7 @@ class ChannelEmail extends App.Wizard
|
||||||
|
|
||||||
App.Config.set( 'getting_started/channel/email', ChannelEmail, 'Routes' )
|
App.Config.set( 'getting_started/channel/email', ChannelEmail, 'Routes' )
|
||||||
|
|
||||||
class Agent extends App.ControllerContent
|
class Agent extends App.Wizard
|
||||||
className: 'getstarted fit'
|
className: 'getstarted fit'
|
||||||
events:
|
events:
|
||||||
'submit form': 'submit'
|
'submit form': 'submit'
|
||||||
|
@ -995,7 +995,7 @@ class Agent extends App.ControllerContent
|
||||||
|
|
||||||
App.Config.set( 'getting_started/agents', Agent, 'Routes' )
|
App.Config.set( 'getting_started/agents', Agent, 'Routes' )
|
||||||
|
|
||||||
class Channel extends App.ControllerContent
|
class Channel extends App.Wizard
|
||||||
className: 'getstarted fit'
|
className: 'getstarted fit'
|
||||||
|
|
||||||
constructor: ->
|
constructor: ->
|
||||||
|
|
|
@ -174,7 +174,7 @@ class Edit extends App.ControllerModal
|
||||||
textarea: 'Text (normal - multiline)'
|
textarea: 'Text (normal - multiline)'
|
||||||
richtext: 'Text (richtext)'
|
richtext: 'Text (richtext)'
|
||||||
checkbox: 'Checkbox'
|
checkbox: 'Checkbox'
|
||||||
boolean: 'Yes/No'
|
boolean: 'yes/no'
|
||||||
|
|
||||||
configureAttributesTop = [
|
configureAttributesTop = [
|
||||||
{ name: 'name', display: 'Name', tag: 'input', type: 'text', limit: 100, 'null': false },
|
{ name: 'name', display: 'Name', tag: 'input', type: 'text', limit: 100, 'null': false },
|
||||||
|
@ -193,11 +193,11 @@ class Edit extends App.ControllerModal
|
||||||
configureAttributesInput = [
|
configureAttributesInput = [
|
||||||
{ name: 'data_option::type', display: 'Type', tag: 'select', multiple: false, nulloption: true, null: false, options: { text: 'text', email: 'email', url: 'url', email: 'email', password: 'password', phone: 'phone'}, translate: true },
|
{ name: 'data_option::type', display: 'Type', tag: 'select', multiple: false, nulloption: true, null: false, options: { text: 'text', email: 'email', url: 'url', email: 'email', password: 'password', phone: 'phone'}, translate: true },
|
||||||
{ name: 'data_option::maxlength', display: 'Max. Length', tag: 'input', type: 'text', limit: 100, 'null': false },
|
{ name: 'data_option::maxlength', display: 'Max. Length', tag: 'input', type: 'text', limit: 100, 'null': false },
|
||||||
{ name: 'data_option::null', display: 'Required', tag: 'select', multiple: false, nulloption: false, null: false, options: { true: 'No', false: 'Yes' }, translate: true },
|
{ name: 'data_option::null', display: 'Required', tag: 'select', multiple: false, nulloption: false, null: false, options: { true: 'no', false: 'yes' }, translate: true },
|
||||||
{ name: 'data_option::autocapitalize', display: 'autocapitalize', tag: 'select', multiple: false, nulloption: true, null: false, options: { true: 'No', false: 'Yes' }, translate: true },
|
{ name: 'data_option::autocapitalize', display: 'autocapitalize', tag: 'select', multiple: false, nulloption: true, null: false, options: { true: 'no', false: 'yes' }, translate: true },
|
||||||
{ name: 'data_option::autocomplete', display: 'autocomplete', tag: 'select', multiple: false, nulloption: true, null: false, options: { true: 'No', false: 'Yes' }, translate: true },
|
{ name: 'data_option::autocomplete', display: 'autocomplete', tag: 'select', multiple: false, nulloption: true, null: false, options: { true: 'no', false: 'yes' }, translate: true },
|
||||||
{ name: 'data_option::default', display: 'Default', tag: 'input', type: 'text', limit: 100, null: true },
|
{ name: 'data_option::default', display: 'Default', tag: 'input', type: 'text', limit: 100, null: true },
|
||||||
{ name: 'data_option::note', display: 'Note', tag: 'input', type: 'text', limit: 100, null: true },
|
{ name: 'data_option::note', display: 'note', tag: 'input', type: 'text', limit: 100, null: true },
|
||||||
]
|
]
|
||||||
controller = new App.ControllerForm(
|
controller = new App.ControllerForm(
|
||||||
model: { configure_attributes: configureAttributesInput, className: '' },
|
model: { configure_attributes: configureAttributesInput, className: '' },
|
||||||
|
@ -209,8 +209,8 @@ class Edit extends App.ControllerModal
|
||||||
# textarea
|
# textarea
|
||||||
configureAttributesTextarea = [
|
configureAttributesTextarea = [
|
||||||
{ name: 'data_option::maxlength', display: 'Max. Length', tag: 'input', type: 'text', limit: 100, null: false },
|
{ name: 'data_option::maxlength', display: 'Max. Length', tag: 'input', type: 'text', limit: 100, null: false },
|
||||||
{ name: 'data_option::null', display: 'Required', tag: 'select', multiple: false, nulloption: false, null: false, options: { true: 'No', false: 'Yes' }, translate: true },
|
{ name: 'data_option::null', display: 'Required', tag: 'select', multiple: false, nulloption: false, null: false, options: { true: 'no', false: 'yes' }, translate: true },
|
||||||
{ name: 'data_option::autocapitalize', display: 'autocapitalize', tag: 'select', multiple: false, nulloption: true, null: false, options: { true: 'No', false: 'Yes' }, translate: true },
|
{ name: 'data_option::autocapitalize', display: 'autocapitalize', tag: 'select', multiple: false, nulloption: true, null: false, options: { true: 'no', false: 'yes' }, translate: true },
|
||||||
{ name: 'data_option::note', display: 'autocomplete', tag: 'input', type: 'text', limit: 100, null: true },
|
{ name: 'data_option::note', display: 'autocomplete', tag: 'input', type: 'text', limit: 100, null: true },
|
||||||
]
|
]
|
||||||
controller = new App.ControllerForm(
|
controller = new App.ControllerForm(
|
||||||
|
@ -222,11 +222,11 @@ class Edit extends App.ControllerModal
|
||||||
|
|
||||||
# select
|
# select
|
||||||
configureAttributesSelect = [
|
configureAttributesSelect = [
|
||||||
{ name: 'data_option::nulloption', display: 'Empty Selection', tag: 'select', multiple: false, nulloption: false, null: false, options: { true: 'No', false: 'Yes' }, translate: true },
|
{ name: 'data_option::nulloption', display: 'Empty Selection', tag: 'select', multiple: false, nulloption: false, null: false, options: { true: 'no', false: 'yes' }, translate: true },
|
||||||
{ name: 'data_option::null', display: 'Required', tag: 'boolean', multiple: false, nulloption: false, null: false, options: { true: 'No', false: 'Yes' }, translate: true },
|
{ name: 'data_option::null', display: 'Required', tag: 'boolean', multiple: false, nulloption: false, null: false, options: { true: 'no', false: 'yes' }, translate: true },
|
||||||
{ name: 'data_option::relation', display: 'Relation', tag: 'input', type: 'text', limit: 100, null: true },
|
{ name: 'data_option::relation', display: 'Relation', tag: 'input', type: 'text', limit: 100, null: true },
|
||||||
{ name: 'data_option::options', display: 'Options', tag: 'hash', multiple: true, null: false },
|
{ name: 'data_option::options', display: 'Options', tag: 'hash', multiple: true, null: false },
|
||||||
{ name: 'data_option::translate', display: 'Übersetzen', tag: 'select', multiple: false, nulloption: false, null: false, options: { true: 'No', false: 'Yes' }, translate: true },
|
{ name: 'data_option::translate', display: 'Übersetzen', tag: 'select', multiple: false, nulloption: false, null: false, options: { true: 'no', false: 'yes' }, translate: true },
|
||||||
{ name: 'data_option::note', display: 'Note', tag: 'input', type: 'text', limit: 100, null: true },
|
{ name: 'data_option::note', display: 'Note', tag: 'input', type: 'text', limit: 100, null: true },
|
||||||
]
|
]
|
||||||
controller = new App.ControllerForm(
|
controller = new App.ControllerForm(
|
||||||
|
|
|
@ -25,15 +25,20 @@ class App.InviteUser extends App.Wizard
|
||||||
@el.remove()
|
@el.remove()
|
||||||
|
|
||||||
render: =>
|
render: =>
|
||||||
@html App.view('widget/invite_user')(
|
modal = $(App.view('widget/invite_user')(
|
||||||
head: @head
|
head: @head
|
||||||
)
|
))
|
||||||
new App.ControllerForm(
|
new App.ControllerForm(
|
||||||
el: @$('.js-form')
|
el: modal.find('.js-form')
|
||||||
model: App.User
|
model: App.User
|
||||||
screen: @screen
|
screen: @screen
|
||||||
autofocus: true
|
autofocus: true
|
||||||
)
|
)
|
||||||
|
if !@initRenderingDone
|
||||||
|
@initRenderingDone = true
|
||||||
|
@html modal
|
||||||
|
else
|
||||||
|
@$('.modal-dialog').replaceWith(modal)
|
||||||
|
|
||||||
submit: (e) =>
|
submit: (e) =>
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
|
|
|
@ -267,7 +267,14 @@ class _i18nSingleton extends Spine.Module
|
||||||
true
|
true
|
||||||
|
|
||||||
getNotTranslated: (locale) =>
|
getNotTranslated: (locale) =>
|
||||||
@_notTranslated[locale || @locale]
|
notTranslated = @_notTranslated[locale || @locale]
|
||||||
|
return notTranslated if locale && locale isnt @locale
|
||||||
|
|
||||||
|
# remove already translated entries
|
||||||
|
for local_locale, translation_list of notTranslated
|
||||||
|
if @mapString[local_locale] && @mapString[local_locale] isnt ''
|
||||||
|
delete notTranslated[local_locale]
|
||||||
|
notTranslated
|
||||||
|
|
||||||
removeNotTranslated: (locale, key) =>
|
removeNotTranslated: (locale, key) =>
|
||||||
delete @_notTranslated[locale][key]
|
delete @_notTranslated[locale][key]
|
||||||
|
|
|
@ -52,15 +52,15 @@ class App.Overview extends App.Model
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 'last_contact'
|
value: 'last_contact'
|
||||||
name: 'Last Contact'
|
name: 'Last contact'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 'last_contact_agent'
|
value: 'last_contact_agent'
|
||||||
name: 'Last Contact Agent'
|
name: 'Last contact (agent)'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 'last_contact_customer'
|
value: 'last_contact_customer'
|
||||||
name: 'Last Contact Customer'
|
name: 'Last contact (customer)'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 'first_response'
|
value: 'first_response'
|
||||||
|
@ -68,7 +68,7 @@ class App.Overview extends App.Model
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 'close_time'
|
value: 'close_time'
|
||||||
name: 'Close Time'
|
name: 'Close time'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 'article_count'
|
value: 'article_count'
|
||||||
|
@ -94,11 +94,11 @@ class App.Overview extends App.Model
|
||||||
group: 'Group'
|
group: 'Group'
|
||||||
owner: 'Owner'
|
owner: 'Owner'
|
||||||
created_at: 'Age'
|
created_at: 'Age'
|
||||||
last_contact: 'Last Contact'
|
last_contact: 'Last contact'
|
||||||
last_contact_agent: 'Last Contact Agent'
|
last_contact_agent: 'Last contact (agent)'
|
||||||
last_contact_customer: 'Last Contact Customer'
|
last_contact_customer: 'Last contact (customer)'
|
||||||
first_response: 'First Response'
|
first_response: 'First Response'
|
||||||
close_time: 'Close Time'
|
close_time: 'Close time'
|
||||||
article_count: 'Article Count'
|
article_count: 'Article Count'
|
||||||
class: 'span4'
|
class: 'span4'
|
||||||
},
|
},
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
<div class="control">
|
<div class="control">
|
||||||
<div class="select-tabs js-selectBrowserWidth">
|
<div class="select-tabs js-selectBrowserWidth">
|
||||||
<div class="tab" data-value="375">iPhone 6</div>
|
<div class="tab" data-value="375">iPhone 6</div>
|
||||||
<div class="tab" data-value="fit"><%- @T('1:1') %></div>
|
<div class="tab" data-value="fit">1:1</div>
|
||||||
<div class="tab is-selected" data-value="1280">MacBook</div>
|
<div class="tab is-selected" data-value="1280">MacBook</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -34,7 +34,7 @@
|
||||||
<input type="url" class="js-testurl-input" id="preview-iframe" value="<%= @previewUrl %>" placeholder="www.zammad.org">
|
<input type="url" class="js-testurl-input" id="preview-iframe" value="<%= @previewUrl %>" placeholder="www.zammad.org">
|
||||||
<div class="loading icon small muted"></div>
|
<div class="loading icon small muted"></div>
|
||||||
</div>
|
</div>
|
||||||
<input type="submit" class="btn" value="<%- @T('Load') %>">
|
<input type="submit" class="btn" value="<%- @Ti('Load') %>">
|
||||||
</form>
|
</form>
|
||||||
<div class="browser-body js-browserBody">
|
<div class="browser-body js-browserBody">
|
||||||
<div class="browser-website js-website">
|
<div class="browser-website js-website">
|
||||||
|
@ -131,13 +131,13 @@
|
||||||
|
|
||||||
<h2><%- @T('Usage') %></h2>
|
<h2><%- @T('Usage') %></h2>
|
||||||
|
|
||||||
<p><%- marked(@T('Insert the widget-code into the source code of every page the chat should be visible on. It should be placed at the end of the page source code before the `</body>` closing tag.')) %></p>
|
<p><%- marked(@T('Insert the widget-code into the source code of every page the chat should be visible on. It should be placed at the end of the page source code before the §</body>§ closing tag.')) %></p>
|
||||||
|
|
||||||
<h3>Requirements</h3>
|
<h3><%- @T('Requirements') %></h3>
|
||||||
<p><%- @T("Zammad Chat requires jQuery. If you don't already use it on your website include it like this:") %></p>
|
<p><%- @T("Zammad Chat requires jQuery. If you don't already use it on your website include it like this:") %></p>
|
||||||
<pre><code class="language-html js-code"><script src="https://code.jquery.com/jquery-2.1.4.min.js"></script></code></pre>
|
<pre><code class="language-html js-code"><script src="https://code.jquery.com/jquery-2.1.4.min.js"></script></code></pre>
|
||||||
|
|
||||||
<h3><%- @T('Auto-show chat') %></h3>
|
<h3><%- @T('Auto-show chat') %> (<%- @T('default') %>)</h3>
|
||||||
<p><%- @T('The chat will show up once the connection to the server got established and if there is someone online to chat with.') %></p>
|
<p><%- @T('The chat will show up once the connection to the server got established and if there is someone online to chat with.') %></p>
|
||||||
|
|
||||||
<pre><code class="language-html js-paramsBlock"><script src="<%= @baseurl %>/assets/chat/chat.min.js"></script>
|
<pre><code class="language-html js-paramsBlock"><script src="<%= @baseurl %>/assets/chat/chat.min.js"></script>
|
||||||
|
@ -150,7 +150,7 @@ $(function() {
|
||||||
</script></code></pre>
|
</script></code></pre>
|
||||||
|
|
||||||
<h3><%- @T('Manually open chat') %></h3>
|
<h3><%- @T('Manually open chat') %></h3>
|
||||||
<p><%- marked(@T('If you want to open the chat by the press of a button set the option `show` to `false` and add the class `open-zammad-chat` to the button.')) %></p>
|
<p><%- @T('If you want to open the chat by the press of a button set the option §show§ to §false§ and add the class §open-zammad-chat§ to the button.') %></p>
|
||||||
<pre><code class="language-html js-paramsBlock"><button class="open-zammad-chat">Chat with us</button>
|
<pre><code class="language-html js-paramsBlock"><button class="open-zammad-chat">Chat with us</button>
|
||||||
|
|
||||||
<script src="<%= @baseurl %>/assets/chat/chat.min.js"></script>
|
<script src="<%= @baseurl %>/assets/chat/chat.min.js"></script>
|
||||||
|
@ -172,7 +172,7 @@ $(function() {
|
||||||
<li><%- @T('The chat is turned off.') %>
|
<li><%- @T('The chat is turned off.') %>
|
||||||
<li><%- @T('There are too many people in queue for the chat.') %>
|
<li><%- @T('There are too many people in queue for the chat.') %>
|
||||||
</ol>
|
</ol>
|
||||||
<%- marked(@T('When you turn on debugging by setting the option `debug` to `true` the reason gets printed to the javascript console.')) %>
|
<%- @T('When you turn on debugging by setting the option §debug§ to §true§ the reason gets printed to the javascript console.') %>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3><%- @T('Options') %></h3>
|
<h3><%- @T('Options') %></h3>
|
||||||
|
@ -188,7 +188,7 @@ $(function() {
|
||||||
<tbody>
|
<tbody>
|
||||||
<% for option in @apiOptions: %>
|
<% for option in @apiOptions: %>
|
||||||
<tr>
|
<tr>
|
||||||
<td><%- @T(option.name) %>
|
<td><%= option.name %>
|
||||||
<td style="white-space: nowrap;"><code class="language-javascript js-code"><%= option.default %></code>
|
<td style="white-space: nowrap;"><code class="language-javascript js-code"><%= option.default %></code>
|
||||||
<td style="white-space: nowrap;"><code class="language-javascript js-code"><%= option.type %></code>
|
<td style="white-space: nowrap;"><code class="language-javascript js-code"><%= option.type %></code>
|
||||||
<td><%- @T(option.description, option.descriptionSubstitute) %>
|
<td><%- @T(option.description, option.descriptionSubstitute) %>
|
||||||
|
|
|
@ -104,7 +104,7 @@
|
||||||
<% for email_address in channel.email_addresses: %>
|
<% for email_address in channel.email_addresses: %>
|
||||||
<li class="list-item" data-id="<%= email_address.id %>">
|
<li class="list-item" data-id="<%= email_address.id %>">
|
||||||
<div class="list-item-name"><%= email_address.email %></div>
|
<div class="list-item-name"><%= email_address.email %></div>
|
||||||
<div class="btn btn--text js-emailAddressEdit space-left"><%- @T('Edit') %></div>
|
<div class="btn btn--text js-emailAddressEdit space-left space-right"><%- @T('Edit') %></div>
|
||||||
<% if channel.email_addresses.length > 1: %>
|
<% if channel.email_addresses.length > 1: %>
|
||||||
<div class="list-item-delete js-emailAddressDelete">
|
<div class="list-item-delete js-emailAddressDelete">
|
||||||
<%- @Icon('diagonal-cross') %>
|
<%- @Icon('diagonal-cross') %>
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
<label><%- @T('System URL') %></label>
|
<label><%- @T('System URL') %></label>
|
||||||
<div class="alert alert--danger hide" role="alert"></div>
|
<div class="alert alert--danger hide" role="alert"></div>
|
||||||
<input type="text" class="form-control" name="url" value="<%= @url %>" placeholder="http://zammad.example.com" required>
|
<input type="text" class="form-control" name="url" value="<%= @url %>" placeholder="http://zammad.example.com" required>
|
||||||
<p class="help-block">The URL to this installation of Zammad.</p>
|
<p class="help-block"><%- @T('The URL to this installation of Zammad.') %></p>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<%- @T( 'Link' ) %>
|
<%- @T('Link') %>
|
||||||
<%- @T( @link_object ) %>
|
<%- @T(@link_object) %>
|
||||||
<input type="text" name="ticket_number" value="" class="span2" required/>
|
<input type="text" name="ticket_number" value="" class="span2" required/>
|
||||||
<%- @T( 'as' ) %>
|
<%- @T('as') %>
|
||||||
<select name="link_type" class="span2" required>
|
<select name="link_type" class="span2" required>
|
||||||
<option value="">-</option>
|
<option value="">-</option>
|
||||||
<option value="normal"><%- @T( 'normal' ) %></option>
|
<option value="normal"><%- @T('Normal') %></option>
|
||||||
<option value="child"><%- @T( 'child' ) %></option>
|
<option value="child"><%- @T('Child') %></option>
|
||||||
<option value="parent"><%- @T( 'parent' ) %></option>
|
<option value="parent"><%- @T('Parent') %></option>
|
||||||
</select>
|
</select>
|
||||||
<%- @T( 'of' ) %>
|
<%- @T('of') %>
|
||||||
Ticket#
|
Ticket#
|
||||||
<%= @object.number %>.
|
<%= @object.number %>.
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
<h4><%- @T( 'Recent Customer Tickets' ) %></h4>
|
<h4><%- @T('Recent Customer Tickets') %></h4>
|
||||||
<div id="ticket-merge-customer-tickets"></div>
|
<div id="ticket-merge-customer-tickets"></div>
|
||||||
<hr>
|
<hr>
|
||||||
<h4><%- @T( 'Recent viewed Tickets' ) %></h4>
|
<h4><%- @T('Recent viewed Tickets') %></h4>
|
||||||
<div id="ticket-merge-recent-tickets"></div>
|
<div id="ticket-merge-recent-tickets"></div>
|
||||||
</fieldset>
|
</fieldset>
|
|
@ -16,7 +16,7 @@
|
||||||
<td title="<%= time[1] %>"><%= time[1] %>
|
<td title="<%= time[1] %>"><%= time[1] %>
|
||||||
<td class="translationOverview-itemContainer"><input class="js-Item translationOverview-item form-control" value="<%= time[2] %>" data-source="<%= time[1] %>" data-initial="<%= time[3] %>" data-id="<%= time[0] %>" data-format="<%= time[4] %>">
|
<td class="translationOverview-itemContainer"><input class="js-Item translationOverview-item form-control" value="<%= time[2] %>" data-source="<%= time[1] %>" data-initial="<%= time[3] %>" data-id="<%= time[0] %>" data-format="<%= time[4] %>">
|
||||||
<td title="<%= time[3] %>"><%= time[3]%>
|
<td title="<%= time[3] %>"><%= time[3]%>
|
||||||
<td><a href="#" class="js-Reset <% if !changed: %>hidden<% end %>"><%- @T('Reset') %></a>
|
<td><a href="#" class="js-Reset btn btn--text<% if !changed: %> hidden<% end %>"><%- @T('Reset') %></a>
|
||||||
<% end %>
|
<% end %>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@ -39,10 +39,10 @@
|
||||||
<% changed = false %>
|
<% changed = false %>
|
||||||
<% changed = true if item[2] isnt item[3] %>
|
<% changed = true if item[2] isnt item[3] %>
|
||||||
<tr <% if changed: %>class="warning"<% end %>>
|
<tr <% if changed: %>class="warning"<% end %>>
|
||||||
<td title="<%= item[1] %>"><%= item[1] %>
|
<td class="noTruncate" title="<%= item[1] %>"><%= item[1] %>
|
||||||
<td class="translationOverview-itemContainer"><input class="js-Item translationOverview-item form-control" value="<%= item[2] %>" data-source="<%= item[1] %>" data-initial="<%= item[3] %>" data-id="<%= item[0] %>" data-format="<%= item[4] %>">
|
<td class="translationOverview-itemContainer"><input class="js-Item translationOverview-item form-control" value="<%= item[2] %>" data-source="<%= item[1] %>" data-initial="<%= item[3] %>" data-id="<%= item[0] %>" data-format="<%= item[4] %>">
|
||||||
<td title="<%= item[3] %>"><%= item[3]%>
|
<td class="noTruncate" title="<%= item[3] %>"><%= item[3]%>
|
||||||
<td><a href="#" class="js-Reset <% if !changed: %>hidden<% end %>"><%- @T('Reset') %></a>
|
<td><a href="#" class="js-Reset btn btn--text<% if !changed: %> hidden<% end %>"><%- @T('Reset') %></a>
|
||||||
<% end %>
|
<% end %>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td title="<%= item[1] %>"><%= item[1] %>
|
<td title="<%= item[1] %>"><%= item[1] %>
|
||||||
<td class="translationOverview-itemContainer"><input class="js-Item translationOverview-item form-control" value="<%= item[2] %>" data-source="<%= item[1] %>" data-id="<%= item[0] %>">
|
<td class="translationOverview-itemContainer"><input class="js-Item translationOverview-item form-control" value="<%= item[2] %>" data-source="<%= item[1] %>" data-id="<%= item[0] %>">
|
||||||
<td><a href="#" class="js-create"><%- @T('Create') %></a> / <a href="#" class="js-theSame"><%- @T('is the same') %></a>
|
<td><a href="#" class="js-create btn btn--text"><%- @T('Create') %></a> / <a href="#" class="js-theSame btn btn--text"><%- @T('is the same') %></a>
|
||||||
<% end %>
|
<% end %>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
|
@ -2755,6 +2755,10 @@ footer {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.translationOverview .btn + .btn {
|
||||||
|
margin: -10px;
|
||||||
|
}
|
||||||
|
|
||||||
.sub_attribute .control-label {
|
.sub_attribute .control-label {
|
||||||
width: 60px;
|
width: 60px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -200,7 +200,18 @@ get list of translations
|
||||||
end
|
end
|
||||||
list.push translation_item
|
list.push translation_item
|
||||||
}
|
}
|
||||||
data['list'] = list
|
|
||||||
|
# add presorted on top
|
||||||
|
presorted_list = []
|
||||||
|
%w(yes no or Year Month Day Days Hour Hours Minute Minutes Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April May June July August September October November December Mon Tue Wed Thu Fri Sat Sun Monday Tuesday Wednesday Thursday Friday Saturday Sunday).each {|presort|
|
||||||
|
list.each {|item|
|
||||||
|
next if item[1] != presort
|
||||||
|
presorted_list.push item
|
||||||
|
list.delete item
|
||||||
|
#list.unshift presort
|
||||||
|
}
|
||||||
|
}
|
||||||
|
data['list'] = presorted_list.concat list
|
||||||
|
|
||||||
# set cache
|
# set cache
|
||||||
if !admin
|
if !admin
|
||||||
|
|
|
@ -335,6 +335,9 @@ test( "i18n", function() {
|
||||||
translated = App.i18n.translateContent('§%s§ %s test', 123, 'xxx');
|
translated = App.i18n.translateContent('§%s§ %s test', 123, 'xxx');
|
||||||
equal( translated, '<kbd>123</kbd> xxx test', 'en-us - §%s§ %s' );
|
equal( translated, '<kbd>123</kbd> xxx test', 'en-us - §%s§ %s' );
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('Here you can search for ticket, customers and organizations. Use the wildcard §*§ to find everything. E. g. §smi*§ or §rosent*l§. You also can use ||double quotes|| for searching phrases §"some phrase"§.');
|
||||||
|
equal( translated, 'Here you can search for ticket, customers and organizations. Use the wildcard <kbd>*</kbd> to find everything. E. g. <kbd>smi*</kbd> or <kbd>rosent*l</kbd>. You also can use <i>double quotes</i> for searching phrases <kbd>"some phrase"</kbd>.', 'en-us - §§ §§ §§ || §§' );
|
||||||
|
|
||||||
translated = App.i18n.translateContent('//%s// %s test', 123, 'xxx');
|
translated = App.i18n.translateContent('//%s// %s test', 123, 'xxx');
|
||||||
equal( translated, '<del>123</del> xxx test', 'en-us - //%s// %s' );
|
equal( translated, '<del>123</del> xxx test', 'en-us - //%s// %s' );
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue