Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Paywall localization error for Simplified Chinese #4829

Open
10 of 12 tasks
xshengcn opened this issue Feb 27, 2025 · 1 comment
Open
10 of 12 tasks

Paywall localization error for Simplified Chinese #4829

xshengcn opened this issue Feb 27, 2025 · 1 comment
Labels

Comments

@xshengcn
Copy link

Describe the bug
When the system language is set to Simplified Chinese, the paywall language displays in Traditional Chinese instead of Simplified Chinese. This causes inconsistency between the system language and the language shown on the paywall.

  1. Environment
    1. Platform: iOS
    2. SDK version: 5.18.0
    3. StoreKit version:
      • StoreKit 1 (default on versions <5.0.0. Can be enabled in versions >=5.0.0 with .with(storeKitVersion: .storeKit1))
      • StoreKit 2 (default on versions >=5.0.0)
    4. OS version: iOS 18.3
    5. Xcode version: 16.2
    6. Device and/or simulator:
      • Device
      • Simulator
    7. Environment:
      • Sandbox
      • TestFlight
      • Production
    8. How widespread is the issue. Percentage of devices affected.
  2. Debug logs that reproduce the issue. Complete logs with Purchases.logLevel = .verbose will help us debug this issue.
(lldb) p self.locale
(Foundation.Locale) {
  _locale = 0x0000000300c64180 {
    identifier = "zh_CN"
    prefs = some {
      metricUnits = nil
      languages = 10 values {
        [0] = "zh-Hans-CN"
        [1] = "ru-CN"
        [2] = "en-CN"
        [3] = "ja-CN"
        [4] = "zh-Hant-CN"
        [5] = "fr-CN"
        [6] = "de-CN"
        [7] = "it-CN"
        [8] = "ko-CN"
        [9] = "es-CN"
      }
      locale = "zh_CN"
      collationOrder = nil
      firstWeekday = nil
      minDaysInFirstWeek = nil
      icuSymbolsAndStrings = {
        icuDateTimeSymbols = nil
        icuDateFormatStrings = nil
        icuTimeFormatStrings = nil
        icuNumberFormatStrings = nil
        icuNumberSymbols = nil
      }
      dateFormats = nil
      numberSymbols = nil
      country = nil
      measurementUnits = nil
      temperatureUnit = nil
      force24Hour = nil
      force12Hour = nil
    }
    lock = {
      _buffer = 0x000000010409c280 {
        header = {
          languageComponents = some {
            languageCode = (_identifier = "zh", _normalizedIdentifier = "zh"){...}
            script = nil{...}
            region = (_identifier = "CN", _normalizedIdentifier = "CN"){...}
          }
          calendarId = gregorian
          collation = nil
          currency = nil
          numberingSystem = nil
          availableNumberingSystems = nil
          firstDayOfWeek = sunday
          weekendRange = nil
          minimalDaysInFirstWeek = 5
          hourCycle = nil
          measurementSystem = nil
          usesCelsius = nil
          region = nil
          subdivision = nil
          timeZone = nil
          variant = nil
          identifierCapturingPreferences = nil
          identifierDisplayNames = 0 key/value pairs {}
          identifierTypes = 0 key/value pairs {}
          languageCodeDisplayNames = 21 key/value pairs {
            [0] ={...}
            [1] ={...}
            [2] ={...}
            [3] ={...}
            [4] ={...}
            [5] ={...}
            [6] ={...}
            [7] ={...}
            [8] ={...}
            [9] ={...}
            [10] ={...}
            [11] ={...}
            [12] ={...}
            [13] ={...}
            [14] ={...}
            [15] ={...}
            [16] ={...}
            [17] ={...}
            [18] ={...}
            [19] ={...}
            [20] ={...}
          }
          countryCodeDisplayNames = 0 key/value pairs {}
          scriptCodeDisplayNames = 0 key/value pairs {}
          variantCodeDisplayNames = 0 key/value pairs {}
          calendarIdentifierDisplayNames = 0 key/value pairs {}
          collationIdentifierDisplayNames = 0 key/value pairs {}
          currencySymbolDisplayNames = 0 key/value pairs {}
          currencyCodeDisplayNames = 0 key/value pairs {}
          numberFormatters = {
            numberFormatters = 0 key/value pairs{...}
          }
        }
      }
    }
  }
}
(lldb) p paywallComponents
(RevenueCat.Offering.PaywallComponents) {
  uiConfig = {
    app = {
      colors = 0 key/value pairs {}
      fonts = 0 key/value pairs {}
    }
    localizations = 3 key/value pairs {
      [0] = {
        key = "zh_Hant"
        value = 45 key/value pairs {
          [0] = (key = "num_month_two", value = "%d months")
          [1] = (key = "num_day_two", value = "%d days")
          [2] = (key = "num_week_many", value = "%d weeks")
          [3] = (key = "num_week_other", value = "%d weeks")
          [4] = (key = "num_year_two", value = "%d years")
          [5] = (key = "num_year_few", value = "%d years")
          [6] = (key = "annual_short", value = "年")
          [7] = (key = "num_month_other", value = "%d months")
          [8] = (key = "num_day_few", value = "%d days")
          [9] = (key = "day_short", value = "天")
          [10] = (key = "daily", value = "每天")
          [11] = (key = "num_week_two", value = "%d weeks")
          [12] = (key = "num_day_zero", value = "%d day")
          [13] = (key = "num_month_many", value = "%d months")
          [14] = (key = "num_month_one", value = "%d month")
          [15] = (key = "weekly", value = "每週")
          [16] = (key = "day", value = "天")
          [17] = (key = "yearly", value = "每年")
          [18] = (key = "num_weeks_short", value = "%d週")
          [19] = (key = "week_short", value = "週")
          [20] = (key = "num_year_zero", value = "%d year")
          [21] = (key = "month_short", value = "月")
          [22] = (key = "num_week_zero", value = "%d week")
          [23] = (key = "num_week_one", value = "%d week")
          [24] = (key = "num_year_other", value = "%d years")
          [25] = (key = "month", value = "月")
          [26] = (key = "num_month_zero", value = "%d month")
          [27] = (key = "num_months_short", value = "%d月")
          [28] = (key = "year", value = "年")
          [29] = (key = "num_month_few", value = "%d months")
          [30] = (key = "percent", value = "%d%%")
          [31] = (key = "week", value = "週")
          [32] = (key = "year_short", value = "年")
          [33] = (key = "num_day_other", value = "%d days")
          [34] = (key = "num_years_short", value = "%d年")
          [35] = (key = "num_year_one", value = "%d year")
          [36] = (key = "annual", value = "每年")
          [37] = (key = "num_days_short", value = "%d天")
          [38] = (key = "num_day_one", value = "%d day")
          [39] = (key = "num_week_few", value = "%d weeks")
          [40] = (key = "num_day_many", value = "%d days")
          [41] = (key = "num_year_many", value = "%d years")
          [42] = (key = "free_price", value = "免費")
          [43] = (key = "monthly", value = "每月")
          [44] = (key = "annually", value = "每年")
        }
      }
      [1] = {
        key = "ru"
        value = 45 key/value pairs {
          [0] = (key = "num_years_short", value = "%dг")
          [1] = (key = "month", value = "месяц")
          [2] = (key = "num_week_few", value = "%d недели")
          [3] = (key = "num_day_other", value = "%d дней")
          [4] = (key = "num_days_short", value = "%dд")
          [5] = (key = "num_day_many", value = "%d дней")
          [6] = (key = "num_year_many", value = "%d лет")
          [7] = (key = "num_month_two", value = "%d месяца")
          [8] = (key = "num_week_zero", value = "%d неделя")
          [9] = (key = "annual", value = "ежегодный")
          [10] = (key = "annually", value = "ежегодно")
          [11] = (key = "week", value = "неделя")
          [12] = (key = "num_day_few", value = "%d дня")
          [13] = (key = "day", value = "день")
          [14] = (key = "num_week_one", value = "%d неделя")
          [15] = (key = "num_day_zero", value = "%d день")
          [16] = (key = "daily", value = "ежедневно")
          [17] = (key = "num_months_short", value = "%dмес")
          [18] = (key = "num_month_many", value = "%d месяцев")
          [19] = (key = "num_day_two", value = "%d дня")
          [20] = (key = "num_month_few", value = "%d месяца")
          [21] = (key = "num_year_two", value = "%d года")
          [22] = (key = "year_short", value = "г")
          [23] = (key = "num_month_zero", value = "%d месяц")
          [24] = (key = "num_year_one", value = "%d год")
          [25] = (key = "weekly", value = "еженедельно")
          [26] = (key = "num_year_few", value = "%d года")
          [27] = (key = "num_week_many", value = "%d недель")
          [28] = (key = "year", value = "год")
          [29] = (key = "num_month_one", value = "%d месяц")
          [30] = (key = "num_year_zero", value = "%d год")
          [31] = (key = "day_short", value = "д")
          [32] = (key = "monthly", value = "ежемесячно")
          [33] = (key = "month_short", value = "мес")
          [34] = (key = "percent", value = "%d%%")
          [35] = (key = "num_month_other", value = "%d месяцев")
          [36] = (key = "num_week_other", value = "%d недель")
          [37] = (key = "yearly", value = "ежегодно")
          [38] = (key = "week_short", value = "нед")
          [39] = (key = "annual_short", value = "г")
          [40] = (key = "num_weeks_short", value = "%dнед")
          [41] = (key = "num_week_two", value = "%d недели")
          [42] = (key = "free_price", value = "бесплатно")
          [43] = (key = "num_year_other", value = "%d лет")
          [44] = (key = "num_day_one", value = "%d день")
        }
      }
      [2] = {
        key = "en_US"
        value = 45 key/value pairs {
          [0] = (key = "year_short", value = "yr")
          [1] = (key = "week", value = "week")
          [2] = (key = "num_month_zero", value = "%d month")
          [3] = (key = "num_weeks_short", value = "%dwk")
          [4] = (key = "num_months_short", value = "%dmo")
          [5] = (key = "month_short", value = "mo")
          [6] = (key = "num_year_zero", value = "%d year")
          [7] = (key = "week_short", value = "wk")
          [8] = (key = "num_years_short", value = "%dyr")
          [9] = (key = "num_week_two", value = "%d weeks")
          [10] = (key = "annual", value = "annual")
          [11] = (key = "num_month_one", value = "%d month")
          [12] = (key = "num_day_many", value = "%d days")
          [13] = (key = "num_week_many", value = "%d weeks")
          [14] = (key = "num_day_one", value = "%d day")
          [15] = (key = "num_year_few", value = "%d years")
          [16] = (key = "num_year_two", value = "%d years")
          [17] = (key = "num_year_one", value = "%d year")
          [18] = (key = "annual_short", value = "yr")
          [19] = (key = "free_price", value = "free")
          [20] = (key = "yearly", value = "yearly")
          [21] = (key = "num_week_zero", value = "%d week")
          [22] = (key = "num_week_one", value = "%d week")
          [23] = (key = "num_days_short", value = "%dd")
          [24] = (key = "num_day_few", value = "%d days")
          [25] = (key = "day_short", value = "day")
          [26] = (key = "weekly", value = "weekly")
          [27] = (key = "daily", value = "daily")
          [28] = (key = "num_day_other", value = "%d days")
          [29] = (key = "year", value = "year")
          [30] = (key = "percent", value = "%d%%")
          [31] = (key = "day", value = "day")
          [32] = (key = "num_month_two", value = "%d months")
          [33] = (key = "num_month_few", value = "%d months")
          [34] = (key = "num_day_zero", value = "%d day")
          [35] = (key = "num_month_many", value = "%d months")
          [36] = (key = "num_year_many", value = "%d years")
          [37] = (key = "num_year_other", value = "%d years")
          [38] = (key = "num_day_two", value = "%d days")
          [39] = (key = "num_week_few", value = "%d weeks")
          [40] = (key = "num_month_other", value = "%d months")
          [41] = (key = "monthly", value = "monthly")
          [42] = (key = "annually", value = "annually")
          [43] = (key = "num_week_other", value = "%d weeks")
          [44] = (key = "month", value = "month")
        }
      }
    }
    variableConfig = {
      variableCompatibilityMap = 0 key/value pairs {}
      functionCompatibilityMap = 0 key/value pairs {}
    }
  }
  data = {
    templateName = "components"
    assetBaseURL = "https://assets.pawwalls.com"
    componentsConfig = {
      base = {
        stack = 0x0000000105762700 {
          type = stack
          visible = nil
          components = 3 values {
            [0] = image{...}
            [1] = text{...}
            [2] = stack{...}
          }
          size = {
            width = fill{...}
            height = fit{...}
          }
          spacing = 24
          backgroundColor = nil
          background = nil
          dimension = vertical {
            vertical ={...}
          }
          padding = (top = 0, bottom = 0, leading = 0, trailing = 0)
          margin = (top = 0, bottom = 0, leading = 0, trailing = 0)
          shape = rectangle {
            rectangle = (topLeading = 0, topTrailing = 0, bottomLeading = 0, bottomTrailing = 0){...}
          }
          border = nil
          shadow = nil
          badge = nil
          overflow = nil
          overrides = nil
        }
        stickyFooter = 0x000000030398ffc0 {
          stack = 0x000000011b508600 {
            type = stack{...}
            visible = nil{...}
            components = 2 values{...}
            size ={...}
            spacing = 10{...}
            backgroundColor = nil{...}
            background = nil{...}
            dimension = vertical{...}
            padding ={...}
            margin ={...}
            shape = nil{...}
            border = nil{...}
            shadow = some{...}
            badge = nil{...}
            overflow = nil{...}
            overrides = nil{...}
          }
        }
        background = color {
          color = {
            light = hex{...}
            dark = nil{...}
          }
        }
      }
    }
    componentsLocalizations = 3 key/value pairs {
      [0] = {
        key = "en_US"
        value = 11 key/value pairs {
          [0] = {
            key = "bNyQipRgwp"{...}
            value = string{...}
          }
          [1] = {
            key = "Q7LP62IQfo"{...}
            value = string{...}
          }
          [2] = {
            key = "rotSVmNhoe"{...}
            value = string{...}
          }
          [3] = {
            key = "bfOTPchbdf"{...}
            value = string{...}
          }
          [4] = {
            key = "KE5_IjxVHh"{...}
            value = string{...}
          }
          [5] = {
            key = "9kQbm2deq1"{...}
            value = string{...}
          }
          [6] = {
            key = "Xtd5JEA8S1"{...}
            value = string{...}
          }
          [7] = {
            key = "xMjVVlM27n"{...}
            value = string{...}
          }
          [8] = {
            key = "PI8KcY-axn"{...}
            value = string{...}
          }
          [9] = {
            key = "cglBvJAbWU"{...}
            value = string{...}
          }
          [10] = {
            key = "sgKimW-Ovf"{...}
            value = string{...}
          }
        }
      }
      [1] = {
        key = "ru"
        value = 11 key/value pairs {
          [0] = {
            key = "sgKimW-Ovf"{...}
            value = string{...}
          }
          [1] = {
            key = "cglBvJAbWU"{...}
            value = string{...}
          }
          [2] = {
            key = "bfOTPchbdf"{...}
            value = string{...}
          }
          [3] = {
            key = "Q7LP62IQfo"{...}
            value = string{...}
          }
          [4] = {
            key = "xMjVVlM27n"{...}
            value = string{...}
          }
          [5] = {
            key = "9kQbm2deq1"{...}
            value = string{...}
          }
          [6] = {
            key = "PI8KcY-axn"{...}
            value = string{...}
          }
          [7] = {
            key = "KE5_IjxVHh"{...}
            value = string{...}
          }
          [8] = {
            key = "rotSVmNhoe"{...}
            value = string{...}
          }
          [9] = {
            key = "bNyQipRgwp"{...}
            value = string{...}
          }
          [10] = {
            key = "Xtd5JEA8S1"{...}
            value = string{...}
          }
        }
      }
      [2] = {
        key = "zh_Hant"
        value = 11 key/value pairs {
          [0] = {
            key = "Q7LP62IQfo"{...}
            value = string{...}
          }
          [1] = {
            key = "Xtd5JEA8S1"{...}
            value = string{...}
          }
          [2] = {
            key = "rotSVmNhoe"{...}
            value = string{...}
          }
          [3] = {
            key = "PI8KcY-axn"{...}
            value = string{...}
          }
          [4] = {
            key = "bNyQipRgwp"{...}
            value = string{...}
          }
          [5] = {
            key = "sgKimW-Ovf"{...}
            value = string{...}
          }
          [6] = {
            key = "xMjVVlM27n"{...}
            value = string{...}
          }
          [7] = {
            key = "bfOTPchbdf"{...}
            value = string{...}
          }
          [8] = {
            key = "KE5_IjxVHh"{...}
            value = string{...}
          }
          [9] = {
            key = "cglBvJAbWU"{...}
            value = string{...}
          }
          [10] = {
            key = "9kQbm2deq1"{...}
            value = string{...}
          }
        }
      }
    }
    defaultLocale = "en_US"
    __revision = (wrappedValue = 28)
    errorInfo = nil
  }
}
  1. Steps to reproduce, with a description of expected vs. actual behavior

When the system is set to Simplified Chinese, the paywall displays in Traditional Chinese instead of Simplified Chinese.

  1. Other information (e.g. stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, etc.)

Built using SwiftUI

@xshengcn xshengcn added the bug label Feb 27, 2025
@RCGitBot
Copy link
Contributor

👀 We've just linked this issue to our internal tracker and notified the team. Thank you for reporting, we're checking this out!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants