प्लूरल के साथ कोणीय 9 $ स्थानीयकरण का उपयोग कैसे करें?


10

कोणीय 9 के बाद से हम उपयोग कर सकते हैं

$localize`Hello ${name}:name:`

टाइप कोड में i18n के लिए। यह अभी भी कुछ सीमाएं है क्योंकि ng xi18nकमांड स्ट्रिंग्स का पता नहीं लगाता है, लेकिन अगर इन ग्रंथों को मैन्युअल रूप से अनुवाद फ़ाइल में जोड़ा जाता है तो यह काम करता है।

$localizeसमारोह काफी अच्छी तरह से में प्रलेखित है स्रोत में JSDoc , लेकिन यह कैसे बहुवचन के साथ काम करने की व्याख्या नहीं करता। मेरा मतलब कुछ इस तरह है (छद्म कोड):

$localize`Hello {${count}, plural, =1 {reader} other {readers}}`

क्या यह संभव है $localize? यदि हाँ: कैसे? यदि नहीं: तो कोणीय HTML से टाइपस्क्रिप्ट के लिए ऐसे भावों को कैसे संकलित करता है?


क्या यह आपकी मदद करता है <span i18n>Updated {minutes, plural, =0 {just now} =1 {one minute ago} other {{{minutes}} minutes ago}}</span>? डॉक्स में। आप क्या चाहते हैं के समान सुंदर है
डेव पास्टर

@DavePastor: हां, मैंने कोशिश की है। मैंने उस सवाल को अब बदल दिया। फिर भी यह छद्म कोड है, बस यह बताना है कि मैं क्या हासिल करना चाहता हूं।
यानिकी

@DavePastor: (दूसरी टिप्पणी के विषय में): नहीं, यह मदद नहीं करता है। यह HTML है, टाइपस्क्रिप्ट नहीं।
यानिकी

ठीक है, तो आप टीएस की ओर से इसे संभालना चाहते हैं। समझ गया।
डेव पास्टर

जवाबों:


2

अभी के लिए, आईसीयू का उपयोग करना संभव नहीं है $localize, जैसा कि इस गीथब मुद्दे में चर्चा की गई है । पिछली टिप्पणियों से, ऐसा लग रहा है कि कोणीय टीम इस पर विचार कर रही है कि क्या यह हल्का रहेगा।

इस बीच, सुझाया गया वर्कअराउंड हेल्पर मेथड बनाने के लिए है जो गिनती पैरामीटर के आधार पर सही अनुवाद देता है।

    title = $localize `Hi ${this.name}! You have ${
        plural(this.users.length. {
          0: $localize `no users`,
          1: $localize `one user`,
          other: $localize`${this.users.length} users`,
    }.`

    function plural(value, options) {
      // Handle 0, 1, ... cases
      const directResult = options[value];
      if (directResult !== undefined) { return directResult; }
      // handle zero, one, two, few, many
      // ...
      return options.other;
    } 

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.