<div dir="ltr"><div dir="ltr" class="gmail_msg">Hi Ian and Daisy,<div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">With the contribution of Simplified Chinese translators, <b class="gmail_msg">vuuv, liujunpeng, sunanchen, zhugaoxiao </b>and<b class="gmail_msg"> xiangbinbin</b>, Ocata dashboard translation reaches 100%! Great thanks for their dedication:) </div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">As you are working with Zanata team for bug fix and feature implementation, here is a tiny feature request for the team from vuuv (Thank vuuv for bring out this request).</div><div class="gmail_msg">We need to have Zanata tool to validate symbols ```` and its completion. For example, ``templateName`` from <a href="https://translate.openstack.org/webtrans/translate?project=murano-dashboard&iteration=master&localeId=zh-CN&locale=en%20#view:doc;doc:releasenotes/source/locale/releasenotes;search:parameters%20under%20%60%60parameterName%60%60" class="gmail_msg" target="_blank">the string</a> as below:</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><ul class="m_7384018354443321078inbox-inbox-list--no-bullets m_7384018354443321078inbox-inbox-l--push-h-quarter m_7384018354443321078inbox-inbox-l--push-top-quarter gmail_msg" style="box-sizing:border-box;padding:0px;list-style:none;font-family:"source sans pro","helvetica neue",helveticaneue,helvetica,arial,sans-serif;font-size:16px;margin:0px"><li style="box-sizing:border-box;font-size:1em;line-height:1.625em;list-style-type:none;word-wrap:break-word;margin-left:0px" class="gmail_msg"><div class="m_7384018354443321078inbox-inbox-sourceContentsContainer gmail_msg" style="box-sizing:border-box;padding:1.25em 0px 0.7em"><div class="m_7384018354443321078inbox-inbox-g--tight m_7384018354443321078inbox-inbox-l--pad-v-quarter m_7384018354443321078inbox-inbox-l--push-all-quarter gmail_msg" style="box-sizing:border-box;list-style:none;letter-spacing:-0.31em;padding:0px;margin:0px"><div class="m_7384018354443321078inbox-inbox-w--11-12 m_7384018354443321078inbox-inbox-g__item gmail_msg" style="box-sizing:border-box;display:inline-block;margin:0px;padding:0px 0.8125em;width:686px;vertical-align:top;word-spacing:normal;letter-spacing:normal"><div style="box-sizing:border-box" class="gmail_msg"><div class="m_7384018354443321078inbox-inbox-gwt-HTML gmail_msg" id="m_7384018354443321078inbox-inbox-gwt-debug-52-source-panel-0-container" title="Source comment:" style="box-sizing:border-box"><pre class="m_7384018354443321078inbox-inbox-cm-s-default gmail_msg" style="box-sizing:border-box;padding:0px;color:rgb(87,94,101);line-height:1.6;margin-top:0px;margin-bottom:0px;white-space:pre-wrap;overflow:auto;word-wrap:break-word;font-family:"source sans pro","helvetica neue",helveticaneue,helvetica,arial,sans-serif;font-size:1em;border:0px;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;background-color:transparent">``ref(templateName<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>[,<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>parameterName]<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>[,<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>idOnly])``<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>YAQL<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>function<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>was<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>added<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>to<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>UI<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>definition<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>DSL.<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>This<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>function<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>evaluates<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>template<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>``templateName``<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>and<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>fixes<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>the<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>result<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>in<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>parameters<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>under<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>``parameterName``<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>key<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>(or<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>``templateName``<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>if<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>the<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>second<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>parameter<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>was<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>omitted).<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>Then<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>it<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>generates<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>object<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>ID<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>and<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>places<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>it<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>into<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>``?/id``<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>field.<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>On<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>the<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>first<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>use<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>of<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>``parameterName``<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>or<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>if<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>``idOnly``<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>is<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>``false``<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>the<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>function<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>will<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>return<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>the<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>whole<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>object<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>structure.<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>On<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>subsequent<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>calls<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>or<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>if<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>``idOnly``<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>is<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>``true``<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>it<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>will<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>return<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>the<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>ID<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>that<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>was<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>generated<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>upon<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>the<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>first<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>call.<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>Thus<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>the<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>function<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>brings<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>ability<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>to<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>reference<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>single<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>object<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>several<span class="m_7384018354443321078inbox-inbox-cm-space gmail_msg" style="box-sizing:border-box;display:inline-block;border-bottom:2px solid rgb(220,236,247)"> </span>times.</pre></div></div></div></div></div></li></ul><br class="m_7384018354443321078inbox-inbox-Apple-interchange-newline gmail_msg"></div><div class="gmail_msg">We need to tool to check the translation ``templateName`` and make sure it consists two symbols '``'. If there is no '`' or only one '``', like <i class="gmail_msg">templateNam</i> or <i class="gmail_msg">``templateNam</i>, the tool will prompt errors. </div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Thanks and have a nice weekend:)</div></div><div dir="ltr" class="gmail_msg">-- <br class="gmail_msg"></div><div data-smartmail="gmail_signature" class="gmail_msg"><div dir="ltr" class="gmail_msg"><div class="gmail_msg"><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;line-height:normal" class="gmail_msg"><br class="gmail_msg"></span></div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;line-height:normal" class="gmail_msg">---------------------------------------------</span><br style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;line-height:normal" class="gmail_msg"><div style="color:rgb(34,34,34);font-family:arial,sans-serif;line-height:normal;font-size:small" class="gmail_msg"><div dir="ltr" class="gmail_msg"><div style="display:inline" class="gmail_msg"><font face="comic sans ms, sans-serif" class="gmail_msg"><div style="display:inline" class="gmail_msg">​</div>周正喜</font></div></div></div><div dir="ltr" style="color:rgb(34,34,34);font-family:arial,sans-serif;line-height:normal;font-size:small" class="gmail_msg"><div style="display:inline" class="gmail_msg"><font face="comic sans ms, sans-serif" class="gmail_msg">Mobile: <a href="tel:13701280947" value="+8613701280947" style="color:rgb(17,85,204)" class="gmail_msg" target="_blank">13701280947</a></font></div></div><div dir="ltr" style="color:rgb(34,34,34);font-family:arial,sans-serif;line-height:normal;font-size:small" class="gmail_msg"><div class="gmail_msg"><font face="comic sans ms, sans-serif" class="gmail_msg">​WeChat: 472174291</font></div></div></div></div></div>