Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/intl/unicharutil/util/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 3 kB image not shown  

Quelle  ICUUtils.h   Sprache: C

 
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */


#ifndef mozilla_ICUUtils_h__
#define mozilla_ICUUtils_h__

// The ICU utils implementation needs internal things like XPCOM strings and
// nsGkAtom, so we only build when included into internal libs:
#ifdef MOZILLA_INTERNAL_API

#  include "nsStringFwd.h"
#  include "unicode/unum.h"  // for UNumberFormat
#  include "mozilla/intl/ICUError.h"
#  include "mozilla/AlreadyAddRefed.h"

class nsIContent;
class nsAtom;

class ICUUtils {
 public:
  /**
   * This class is used to encapsulate an nsIContent object to allow lazy
   * iteration over its primary and fallback BCP 47 language tags.
   */

  class LanguageTagIterForContent {
   public:
    explicit LanguageTagIterForContent(nsIContent* aContent)
        : mContent(aContent), mCurrentFallbackIndex(-1) {}

    /**
     * Used to iterate over the nsIContent object's primary language tag and
     * its fallbacks tags. The following sources of language tag information
     * are tried in turn:
     *
     * 1) the "lang" of the nsIContent object (which is based on the 'lang'/
     *    'xml:lang' attribute on itself or the nearest ancestor to have such
     *    an attribute, if any);
     * 2) the Content-Language HTTP pragma directive or HTTP header;
     * 3) the configured language tag of the user-agent.
     *
     * Once all fallbacks have been exhausted then this function will set
     * aBCP47LangTag to the empty string.
     */

    already_AddRefed<nsAtom> GetNext();

    bool IsAtStart() const { return mCurrentFallbackIndex < 0; }

   private:
    nsIContent* mContent;
    int8_t mCurrentFallbackIndex;
  };

  /**
   * Attempts to localize aValue and return the result via the aLocalizedValue
   * outparam. Returns true on success. Returns false on failure, in which
   * case aLocalizedValue will be untouched.
   */

  static bool LocalizeNumber(double aValue,
                             LanguageTagIterForContent& aLangTags,
                             nsAString& aLocalizedValue);

  /**
   * Parses the localized number that is serialized in aValue using aLangTags
   * and returns the result as a double. Returns NaN on failure.
   */

  static double ParseNumber(const nsAString& aValue,
                            LanguageTagIterForContent& aLangTags);

  static void AssignUCharArrayToString(UChar* aICUString, int32_t aLength,
                                       nsAString& aMozString);

  /**
   * Map ICUError to nsresult
   */

  static nsresult ICUErrorToNsResult(const mozilla::intl::ICUError aError);

#  if 0
  // Currently disabled because using C++ API doesn't play nicely with enabling
  // system ICU.

  /**
   * Converts an IETF BCP 47 language code to an ICU Locale.
   */

  static Locale BCP47CodeToLocale(const nsAString& aBCP47Code);

  static void ToMozString(UnicodeString& aICUString, nsAString& aMozString);
  static void ToICUString(nsAString& aMozString, UnicodeString& aICUString);
#  endif
};

#endif /* MOZILLA_INTERNAL_API */

#endif /* mozilla_ICUUtils_h__ */

Messung V0.5
C=97 H=40 G=74

¤ Dauer der Verarbeitung: 0.25 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.