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()
|
||||
|
||||
class App.Wizard extends App.Controller
|
||||
constructor: ->
|
||||
super
|
||||
|
||||
# rerender view, e. g. on langauge change
|
||||
@bind('ui:rerender', =>
|
||||
@render()
|
||||
'wizard'
|
||||
)
|
||||
|
||||
goToSlide: (e) =>
|
||||
e.preventDefault()
|
||||
slide = $(e.target).data('slide')
|
||||
|
|
|
@ -14,8 +14,8 @@ class Index extends App.Controller
|
|||
html = $( App.view('profile/password')() )
|
||||
|
||||
configure_attributes = [
|
||||
{ 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_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', },
|
||||
]
|
||||
|
||||
@form = new App.ControllerForm(
|
||||
|
|
|
@ -34,7 +34,7 @@ class App.UiElement.postmaster_set
|
|||
{
|
||||
value: 'x-zammad-ignore'
|
||||
name: 'Ignore Message'
|
||||
options: { true: 'Yes', false: 'No'}
|
||||
options: { true: 'yes', false: 'no'}
|
||||
},
|
||||
]
|
||||
expert:
|
||||
|
@ -43,7 +43,7 @@ class App.UiElement.postmaster_set
|
|||
{
|
||||
value: 'x-zammad-article-internal'
|
||||
name: 'Internal'
|
||||
options: { true: 'Yes', false: 'No'}
|
||||
options: { true: 'yes', false: 'no'}
|
||||
},
|
||||
{
|
||||
value: 'x-zammad-article-type_id'
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
class Index extends App.ControllerContent
|
||||
class Index extends App.Wizard
|
||||
className: 'getstarted fit'
|
||||
|
||||
constructor: ->
|
||||
|
@ -130,7 +130,7 @@ App.Config.set( 'getting_started/auto_wizard', 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'
|
||||
events:
|
||||
'submit form': 'submit'
|
||||
|
@ -505,7 +505,7 @@ class EmailNotification extends App.Wizard
|
|||
App.Config.set( 'getting_started/email_notification', EmailNotification, 'Routes' )
|
||||
|
||||
|
||||
class Channel extends App.ControllerContent
|
||||
class Channel extends App.Wizard
|
||||
className: 'getstarted fit'
|
||||
|
||||
constructor: ->
|
||||
|
@ -558,7 +558,7 @@ class Channel extends App.ControllerContent
|
|||
|
||||
App.Config.set( 'getting_started/channel', Channel, 'Routes' )
|
||||
|
||||
class ChannelEmailPreConfigured extends App.ControllerContent
|
||||
class ChannelEmailPreConfigured extends App.Wizard
|
||||
className: 'getstarted fit'
|
||||
|
||||
constructor: ->
|
||||
|
@ -895,7 +895,7 @@ class ChannelEmail extends App.Wizard
|
|||
|
||||
App.Config.set( 'getting_started/channel/email', ChannelEmail, 'Routes' )
|
||||
|
||||
class Agent extends App.ControllerContent
|
||||
class Agent extends App.Wizard
|
||||
className: 'getstarted fit'
|
||||
events:
|
||||
'submit form': 'submit'
|
||||
|
@ -995,7 +995,7 @@ class Agent extends App.ControllerContent
|
|||
|
||||
App.Config.set( 'getting_started/agents', Agent, 'Routes' )
|
||||
|
||||
class Channel extends App.ControllerContent
|
||||
class Channel extends App.Wizard
|
||||
className: 'getstarted fit'
|
||||
|
||||
constructor: ->
|
||||
|
|
|
@ -174,7 +174,7 @@ class Edit extends App.ControllerModal
|
|||
textarea: 'Text (normal - multiline)'
|
||||
richtext: 'Text (richtext)'
|
||||
checkbox: 'Checkbox'
|
||||
boolean: 'Yes/No'
|
||||
boolean: 'yes/no'
|
||||
|
||||
configureAttributesTop = [
|
||||
{ name: 'name', display: 'Name', tag: 'input', type: 'text', limit: 100, 'null': false },
|
||||
|
@ -193,11 +193,11 @@ class Edit extends App.ControllerModal
|
|||
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::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::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::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::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::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(
|
||||
model: { configure_attributes: configureAttributesInput, className: '' },
|
||||
|
@ -209,8 +209,8 @@ class Edit extends App.ControllerModal
|
|||
# textarea
|
||||
configureAttributesTextarea = [
|
||||
{ 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::autocapitalize', display: 'autocapitalize', tag: 'select', multiple: false, nulloption: true, 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::note', display: 'autocomplete', tag: 'input', type: 'text', limit: 100, null: true },
|
||||
]
|
||||
controller = new App.ControllerForm(
|
||||
|
@ -222,11 +222,11 @@ class Edit extends App.ControllerModal
|
|||
|
||||
# select
|
||||
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::null', display: 'Required', tag: 'boolean', 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::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::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 },
|
||||
]
|
||||
controller = new App.ControllerForm(
|
||||
|
|
|
@ -25,15 +25,20 @@ class App.InviteUser extends App.Wizard
|
|||
@el.remove()
|
||||
|
||||
render: =>
|
||||
@html App.view('widget/invite_user')(
|
||||
modal = $(App.view('widget/invite_user')(
|
||||
head: @head
|
||||
)
|
||||
))
|
||||
new App.ControllerForm(
|
||||
el: @$('.js-form')
|
||||
el: modal.find('.js-form')
|
||||
model: App.User
|
||||
screen: @screen
|
||||
autofocus: true
|
||||
)
|
||||
if !@initRenderingDone
|
||||
@initRenderingDone = true
|
||||
@html modal
|
||||
else
|
||||
@$('.modal-dialog').replaceWith(modal)
|
||||
|
||||
submit: (e) =>
|
||||
e.preventDefault()
|
||||
|
|
|
@ -267,7 +267,14 @@ class _i18nSingleton extends Spine.Module
|
|||
true
|
||||
|
||||
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) =>
|
||||
delete @_notTranslated[locale][key]
|
||||
|
|
|
@ -52,15 +52,15 @@ class App.Overview extends App.Model
|
|||
},
|
||||
{
|
||||
value: 'last_contact'
|
||||
name: 'Last Contact'
|
||||
name: 'Last contact'
|
||||
},
|
||||
{
|
||||
value: 'last_contact_agent'
|
||||
name: 'Last Contact Agent'
|
||||
name: 'Last contact (agent)'
|
||||
},
|
||||
{
|
||||
value: 'last_contact_customer'
|
||||
name: 'Last Contact Customer'
|
||||
name: 'Last contact (customer)'
|
||||
},
|
||||
{
|
||||
value: 'first_response'
|
||||
|
@ -68,7 +68,7 @@ class App.Overview extends App.Model
|
|||
},
|
||||
{
|
||||
value: 'close_time'
|
||||
name: 'Close Time'
|
||||
name: 'Close time'
|
||||
},
|
||||
{
|
||||
value: 'article_count'
|
||||
|
@ -94,11 +94,11 @@ class App.Overview extends App.Model
|
|||
group: 'Group'
|
||||
owner: 'Owner'
|
||||
created_at: 'Age'
|
||||
last_contact: 'Last Contact'
|
||||
last_contact_agent: 'Last Contact Agent'
|
||||
last_contact_customer: 'Last Contact Customer'
|
||||
last_contact: 'Last contact'
|
||||
last_contact_agent: 'Last contact (agent)'
|
||||
last_contact_customer: 'Last contact (customer)'
|
||||
first_response: 'First Response'
|
||||
close_time: 'Close Time'
|
||||
close_time: 'Close time'
|
||||
article_count: 'Article Count'
|
||||
class: 'span4'
|
||||
},
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
<div class="control">
|
||||
<div class="select-tabs js-selectBrowserWidth">
|
||||
<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>
|
||||
</div>
|
||||
|
@ -34,7 +34,7 @@
|
|||
<input type="url" class="js-testurl-input" id="preview-iframe" value="<%= @previewUrl %>" placeholder="www.zammad.org">
|
||||
<div class="loading icon small muted"></div>
|
||||
</div>
|
||||
<input type="submit" class="btn" value="<%- @T('Load') %>">
|
||||
<input type="submit" class="btn" value="<%- @Ti('Load') %>">
|
||||
</form>
|
||||
<div class="browser-body js-browserBody">
|
||||
<div class="browser-website js-website">
|
||||
|
@ -131,13 +131,13 @@
|
|||
|
||||
<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>
|
||||
<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>
|
||||
|
||||
<pre><code class="language-html js-paramsBlock"><script src="<%= @baseurl %>/assets/chat/chat.min.js"></script>
|
||||
|
@ -150,7 +150,7 @@ $(function() {
|
|||
</script></code></pre>
|
||||
|
||||
<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>
|
||||
|
||||
<script src="<%= @baseurl %>/assets/chat/chat.min.js"></script>
|
||||
|
@ -172,7 +172,7 @@ $(function() {
|
|||
<li><%- @T('The chat is turned off.') %>
|
||||
<li><%- @T('There are too many people in queue for the chat.') %>
|
||||
</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>
|
||||
|
||||
<h3><%- @T('Options') %></h3>
|
||||
|
@ -188,7 +188,7 @@ $(function() {
|
|||
<tbody>
|
||||
<% for option in @apiOptions: %>
|
||||
<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.type %></code>
|
||||
<td><%- @T(option.description, option.descriptionSubstitute) %>
|
||||
|
|
|
@ -104,7 +104,7 @@
|
|||
<% for email_address in channel.email_addresses: %>
|
||||
<li class="list-item" data-id="<%= email_address.id %>">
|
||||
<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: %>
|
||||
<div class="list-item-delete js-emailAddressDelete">
|
||||
<%- @Icon('diagonal-cross') %>
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
<label><%- @T('System URL') %></label>
|
||||
<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>
|
||||
<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>
|
||||
<% end %>
|
||||
</fieldset>
|
||||
|
|
|
@ -1,22 +1,22 @@
|
|||
<fieldset>
|
||||
<%- @T( 'Link' ) %>
|
||||
<%- @T( @link_object ) %>
|
||||
<%- @T('Link') %>
|
||||
<%- @T(@link_object) %>
|
||||
<input type="text" name="ticket_number" value="" class="span2" required/>
|
||||
<%- @T( 'as' ) %>
|
||||
<%- @T('as') %>
|
||||
<select name="link_type" class="span2" required>
|
||||
<option value="">-</option>
|
||||
<option value="normal"><%- @T( 'normal' ) %></option>
|
||||
<option value="child"><%- @T( 'child' ) %></option>
|
||||
<option value="parent"><%- @T( 'parent' ) %></option>
|
||||
<option value="normal"><%- @T('Normal') %></option>
|
||||
<option value="child"><%- @T('Child') %></option>
|
||||
<option value="parent"><%- @T('Parent') %></option>
|
||||
</select>
|
||||
<%- @T( 'of' ) %>
|
||||
<%- @T('of') %>
|
||||
Ticket#
|
||||
<%= @object.number %>.
|
||||
|
||||
<hr>
|
||||
<h4><%- @T( 'Recent Customer Tickets' ) %></h4>
|
||||
<h4><%- @T('Recent Customer Tickets') %></h4>
|
||||
<div id="ticket-merge-customer-tickets"></div>
|
||||
<hr>
|
||||
<h4><%- @T( 'Recent viewed Tickets' ) %></h4>
|
||||
<h4><%- @T('Recent viewed Tickets') %></h4>
|
||||
<div id="ticket-merge-recent-tickets"></div>
|
||||
</fieldset>
|
|
@ -16,7 +16,7 @@
|
|||
<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 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 %>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -39,10 +39,10 @@
|
|||
<% changed = false %>
|
||||
<% changed = true if item[2] isnt item[3] %>
|
||||
<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 title="<%= item[3] %>"><%= item[3]%>
|
||||
<td><a href="#" class="js-Reset <% if !changed: %>hidden<% end %>"><%- @T('Reset') %></a>
|
||||
<td class="noTruncate" title="<%= item[3] %>"><%= item[3]%>
|
||||
<td><a href="#" class="js-Reset btn btn--text<% if !changed: %> hidden<% end %>"><%- @T('Reset') %></a>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<tr>
|
||||
<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><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 %>
|
||||
</tbody>
|
||||
</table>
|
|
@ -2755,6 +2755,10 @@ footer {
|
|||
display: inline-block;
|
||||
}
|
||||
|
||||
.translationOverview .btn + .btn {
|
||||
margin: -10px;
|
||||
}
|
||||
|
||||
.sub_attribute .control-label {
|
||||
width: 60px;
|
||||
}
|
||||
|
|
|
@ -200,7 +200,18 @@ get list of translations
|
|||
end
|
||||
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
|
||||
if !admin
|
||||
|
|
|
@ -335,6 +335,9 @@ test( "i18n", function() {
|
|||
translated = App.i18n.translateContent('§%s§ %s test', 123, 'xxx');
|
||||
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');
|
||||
equal( translated, '<del>123</del> xxx test', 'en-us - //%s// %s' );
|
||||
|
||||
|
|
Loading…
Reference in a new issue