ÿÿ ペイウォールã®ãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚º | React Native SDK | Adapty ドキュメント

React Native SDKã§ãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚ºã¨ãƒ­ã‚±ãƒ¼ãƒ«ã‚³ãƒ¼ãƒ‰ã‚’使用ã™ã‚‹

ã“れãŒé‡è¦ãªç†ç”±

ロケールコードã¯ã€Adapty ãŒãƒ•ローã®ãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚ºã‚’é¸æŠžã™ã‚‹ã¨ãã¨ã€ã‚«ã‚¹ã‚¿ãƒ ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®ãƒªãƒ¢ãƒ¼ãƒˆã‚³ãƒ³ãƒ•ィグを読ã¿å–ã‚‹ã¨ãã«ä½¿ã‚れã¾ã™ã€‚

ロケールコードã¯ãƒ—ラットフォームã”ã¨ã«ç•°ãªã‚‹å ´åˆãŒã‚り扱ã„ãŒè¤‡é›‘ãªãŸã‚ã€Adapty ã¯ã‚µãƒãƒ¼ãƒˆã™ã‚‹ã™ã¹ã¦ã®ãƒ—ラットフォームã§å…±é€šã®å†…部標準ã«ä¾å­˜ã—ã¦ã„ã¾ã™ã€‚ã“ã®æ¨™æº–ã‚’ç†è§£ã—ã¦ãŠãã¨ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒã©ã®ãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚ºã‚’å—ã‘å–ã‚‹ã‹ã‚’予測ã—ã‚„ã™ããªã‚Šã¾ã™ã€‚

Adaptyã«ãŠã‘ã‚‹ãƒ­ã‚±ãƒ¼ãƒ«ã‚³ãƒ¼ãƒ‰ã®æ¨™æº–

ロケールコードã«ã¤ã„ã¦ã€Adaptyã¯BCP 47標準を若干修正ã—ãŸå½¢å¼ã‚’採用ã—ã¦ã„ã¾ã™ã€‚å„コードã¯å°æ–‡å­—ã®ã‚µãƒ–ã‚¿ã‚°ã‚’ãƒã‚¤ãƒ•ンã§åŒºåˆ‡ã£ã¦æ§‹æˆã•れã¾ã™ã€‚例:en(英語)ã€pt-br(ãƒãƒ«ãƒˆã‚¬ãƒ«èªžï¼ˆãƒ–ラジル))ã€zh(簡体字中国語)ã€zh-hant(ç¹ä½“字中国語)。

ロケールコードã®ãƒžãƒƒãƒãƒ³ã‚°

Adapty ãŒãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ãƒ­ã‚±ãƒ¼ãƒ«ã«ä¸€è‡´ã™ã‚‹ãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚ºã‚’検索ã™ã‚‹éš›ã€ä»¥ä¸‹ã®å‡¦ç†ãŒè¡Œã‚れã¾ã™ï¼š

  1. ロケール文字列ãŒå°æ–‡å­—ã«å¤‰æ›ã•れã€ã‚¢ãƒ³ãƒ€ãƒ¼ã‚¹ã‚³ã‚¢ï¼ˆ_)ãŒã™ã¹ã¦ãƒã‚¤ãƒ•ン(-)ã«ç½®ãæ›ãˆã‚‰ã‚Œã¾ã™
  2. Adapty ã¯ãƒ­ã‚±ãƒ¼ãƒ«ã‚³ãƒ¼ãƒ‰ãŒå®Œå…¨ã«ä¸€è‡´ã™ã‚‹ãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚ºã‚’検索ã—ã¾ã™
  3. 一致ã™ã‚‹ã‚‚ã®ãŒè¦‹ã¤ã‹ã‚‰ãªã„å ´åˆã€Adapty ã¯æœ€åˆã®ãƒã‚¤ãƒ•ンよりå‰ã®éƒ¨åˆ†æ–‡å­—列(pt-br ã®å ´åˆã¯ pt)をå–å¾—ã—ã€ä¸€è‡´ã™ã‚‹ãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚ºã‚’検索ã—ã¾ã™
  4. ãれã§ã‚‚一致ã™ã‚‹ã‚‚ã®ãŒè¦‹ã¤ã‹ã‚‰ãªã„å ´åˆã€Adapty ã¯ãƒ‡ãƒ•ォルト㮠en ローカライズを返ã—ã¾ã™

ã“ã®ã‚ˆã†ã«ã—ã¦ã€'pt_BR'ã€pt-BRã€pt-br ã¯ã™ã¹ã¦åŒã˜ãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚ºã«è§£æ±ºã•れã¾ã™ã€‚

ローカライズã®å®Ÿè£…

SDK v4 ã§ã¯ã€ãƒ•ローをå–å¾—ã™ã‚‹éš›ã«ãƒ­ã‚±ãƒ¼ãƒ«ã‚³ãƒ¼ãƒ‰ã‚’渡ã™å¿…è¦ã¯ã‚りã¾ã›ã‚“。

  • フロービルダーã¨ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ãƒ“ルダーã®ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«: Adapty ã¯ãƒ‡ãƒã‚¤ã‚¹ã®è¨­å®šã¨ãƒ“ルダーã§è¨­å®šã—ãŸãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚ºã‚’ã‚‚ã¨ã«ã€è‡ªå‹•çš„ã«ãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚ºã‚’解決ã—ã¾ã™ã€‚createFlowView ã§ãƒ•ローをレンダリングã™ã‚‹ã ã‘ã§ã€ãƒ­ã‚±ãƒ¼ãƒ«ã‚³ãƒ¼ãƒ‰ã¯ä¸è¦ã§ã™ã€‚
  • カスタム(リモートコンフィグ)ペイウォール: getFlow ã¯è¨­å®šæ¸ˆã¿ã®ã™ã¹ã¦ã®ãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚ºã‚’ flow.remoteConfigs ã«è¿”ã—ã¾ã™ã€‚å„エントリã«ã¯ lang コード㨠data オブジェクトãŒå«ã¾ã‚Œã¾ã™ã€‚独自ã®ãƒ•ォールãƒãƒƒã‚¯å‡¦ç†ã‚’加ãˆã¤ã¤ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«åˆã£ãŸã‚¨ãƒ³ãƒˆãƒªã‚’é¸æŠžã—ã¦ãã ã•ã„。

const flow = await adapty.getFlow('placement_id');
const config = flow.remoteConfigs?.find((c) => c.lang === 'en') ?? flow.remoteConfigs?.[0];
// read your values from config?.data

上記ã®ãƒ­ã‚±ãƒ¼ãƒ«ã‚³ãƒ¼ãƒ‰ãƒžãƒƒãƒãƒ³ã‚°ãƒ«ãƒ¼ãƒ«ã¯ã€å„リモートコンフィグã«ä¿å­˜ã•れ㟠lang コードを Adapty ãŒã©ã®ã‚ˆã†ã«æ­£è¦åŒ–ã™ã‚‹ã‹ã‚’説明ã—ã¦ã„ã¾ã™ã€‚

ã“れãŒé‡è¦ãªç†ç”±

ロケールコードãŒé–¢ã‚るシナリオã¯ã„ãã¤ã‹ã‚りã¾ã™ — ãŸã¨ãˆã°ã€ã‚¢ãƒ—リã®ç¾åœ¨ã®ãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚ºã«å¯¾å¿œã™ã‚‹æ­£ã—ã„ペイウォールをå–å¾—ã—よã†ã¨ã™ã‚‹å ´åˆãªã©ã§ã™ã€‚

ロケールコードã¯ãƒ—ラットフォームã«ã‚ˆã£ã¦ç•°ãªã‚‹è¤‡é›‘ãªã‚‚ã®ã§ã‚ã‚‹ãŸã‚ã€Adapty ãŒã‚µãƒãƒ¼ãƒˆã™ã‚‹ã™ã¹ã¦ã®ãƒ—ラットフォームã«å…±é€šã®å†…部標準を採用ã—ã¦ã„ã¾ã™ã€‚ãŸã ã—ã€ãã®è¤‡é›‘ã•ゆãˆã«ã€ã‚µãƒ¼ãƒãƒ¼ã«é€ä¿¡ã—ã¦ã„る内容ã¨ã€ãã®å¾Œã®å‡¦ç†ã‚’æ­£ç¢ºã«æŠŠæ¡ã—ã¦ãŠãã“ã¨ãŒéžå¸¸ã«é‡è¦ã§ã™ã€‚ãã†ã™ã‚‹ã“ã¨ã§ã€å¸¸ã«æœŸå¾…ã©ãŠã‚Šã®çµæžœã‚’å—ã‘å–ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚

Adaptyã«ãŠã‘ã‚‹ãƒ­ã‚±ãƒ¼ãƒ«ã‚³ãƒ¼ãƒ‰ã®æ¨™æº–

ロケールコードã«ã¤ã„ã¦ã€Adaptyã¯BCP 47標準を若干修正ã—ãŸå½¢å¼ã‚’採用ã—ã¦ã„ã¾ã™ã€‚å„コードã¯å°æ–‡å­—ã®ã‚µãƒ–ã‚¿ã‚°ã‚’ãƒã‚¤ãƒ•ンã§åŒºåˆ‡ã£ãŸå½¢å¼ã§ã™ã€‚例:en(英語)ã€pt-br(ãƒãƒ«ãƒˆã‚¬ãƒ«èªžï¼ˆãƒ–ラジル))ã€zh(簡体字中国語)ã€zh-hant(ç¹ä½“字中国語)。

ロケールコードã®ãƒžãƒƒãƒãƒ³ã‚°

Adapty ãŒã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã‚µã‚¤ãƒ‰ SDK ã‹ã‚‰ãƒ­ã‚±ãƒ¼ãƒ«ã‚³ãƒ¼ãƒ‰ã‚’å—ã‘å–りã€å¯¾å¿œã™ã‚‹ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã®ãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚ºã‚’検索ã™ã‚‹éš›ã€ä»¥ä¸‹ã®å‡¦ç†ãŒè¡Œã‚れã¾ã™ã€‚

  1. å—ã‘å–ã£ãŸãƒ­ã‚±ãƒ¼ãƒ«æ–‡å­—åˆ—ã‚’å°æ–‡å­—ã«å¤‰æ›ã—ã€ã‚¢ãƒ³ãƒ€ãƒ¼ã‚¹ã‚³ã‚¢ï¼ˆ_)をãƒã‚¤ãƒ•ン(-)ã«ç½®ãæ›ãˆã¾ã™
  2. 完全ã«ä¸€è‡´ã™ã‚‹ãƒ­ã‚±ãƒ¼ãƒ«ã‚³ãƒ¼ãƒ‰ã®ãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚ºã‚’検索ã—ã¾ã™
  3. 一致ã™ã‚‹ã‚‚ã®ãŒè¦‹ã¤ã‹ã‚‰ãªã„å ´åˆã€æœ€åˆã®ãƒã‚¤ãƒ•ンよりå‰ã®éƒ¨åˆ†æ–‡å­—列(例:pt-br ã®å ´åˆã¯ pt)をå–り出ã—ã€ä¸€è‡´ã™ã‚‹ãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚ºã‚’検索ã—ã¾ã™
  4. ãれã§ã‚‚一致ã™ã‚‹ã‚‚ã®ãŒè¦‹ã¤ã‹ã‚‰ãªã„å ´åˆã€ãƒ‡ãƒ•ォルト㮠en ローカライズを返ã—ã¾ã™ 'pt_BR'ã‚’é€ä¿¡ã—ãŸiOSデãƒã‚¤ã‚¹ã€pt-BRã‚’é€ä¿¡ã—ãŸAndroidデãƒã‚¤ã‚¹ã€pt-brã‚’é€ä¿¡ã—ãŸåˆ¥ã®ãƒ‡ãƒã‚¤ã‚¹ãŒã€ã™ã¹ã¦åŒã˜çµæžœã‚’å—ã‘å–るよã†ã«ãªã‚Šã¾ã™ã€‚

ローカライズã«ã¤ã„ã¦èª¿ã¹ã¦ã„ã‚‹ãªã‚‰ã€ã™ã§ã«ãƒ—ロジェクト内ã§ãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚ºæ¸ˆã¿æ–‡å­—列ファイルを扱ã£ã¦ã„ã‚‹ã‹ã¨æ€ã„ã¾ã™ã€‚ãã®å ´åˆã€å„ファイルã«å¯¾å¿œã™ã‚‹ãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚ºç”¨ã® Adapty ロケールコードをキーã¨å€¤ã®å½¢å¼ã§è¨˜è¿°ã—ã¦ãŠãã“ã¨ã‚’ãŠå‹§ã‚ã—ã¾ã™ã€‚ãã—㦠SDK を呼ã³å‡ºã™éš›ã«ã€ãã®ã‚­ãƒ¼ã®å€¤ã‚’å–り出ã—ã¦ä½¿ã„ã¾ã™ã€‚例を示ã—ã¾ã™ï¼š

// 1. Modify your localization files (e.g., using react-i18next)

/*
en.json
*/
{
  "adapty_paywalls_locale": "en"
}

/*
es.json
*/
{
  "adapty_paywalls_locale": "es"
}

/*
pt-BR.json
*/
{
  "adapty_paywalls_locale": "pt-br"
}

// 2. Extract and use the locale code

const MyComponent = () => {
  const { t } = useTranslation();
  
  const fetchPaywall = async () => {
    const locale = t('adapty_paywalls_locale');
    // pass locale code to adapty.getPaywall or adapty.getPaywallForDefaultAudience method
    const paywall = await adapty.getPaywallForDefaultAudience('placement_id', locale);
  };
};

ãã†ã™ã‚‹ã“ã¨ã§ã€ã‚¢ãƒ—リã®ã™ã¹ã¦ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«å¯¾ã—ã¦ã©ã®ãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚¼ãƒ¼ã‚·ãƒ§ãƒ³ãŒå–å¾—ã•れるã‹ã‚’完全ã«ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ«ã§ãã¾ã™ã€‚

ローカライゼーションã®å®Ÿè£…ï¼šåˆ¥ã®æ–¹æ³•

ã™ã¹ã¦ã®ãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚¼ãƒ¼ã‚·ãƒ§ãƒ³ã«ãƒ­ã‚±ãƒ¼ãƒ«ã‚³ãƒ¼ãƒ‰ã‚’明示的ã«å®šç¾©ã—ãªãã¦ã‚‚ã€åŒæ§˜ã®ï¼ˆãŸã ã—完全ã«åŒä¸€ã§ã¯ãªã„ï¼‰çµæžœã‚’å¾—ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ãã®æ–¹æ³•ã¯ã€ãŸã¨ãˆã° react-native-localize を使ã£ã¦ã€ãƒ‡ãƒã‚¤ã‚¹ã‹ã‚‰ãƒ­ã‚±ãƒ¼ãƒ«ã‚³ãƒ¼ãƒ‰ã‚’å–å¾—ã™ã‚‹ã¨ã„ã†ã‚‚ã®ã§ã™ã€‚


const fetchPaywall = async () => {
  // getLocales() ã¯ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®å„ªå…ˆãƒ­ã‚±ãƒ¼ãƒ«ã‚’BCP-47å½¢å¼ï¼ˆä¾‹: 'en-US', 'pt-BR')ã§è¿”ã—ã¾ã™
  const locale = RNLocalize.getLocales()[0].languageTag;
  // ロケールコードを adapty.getPaywall ã¾ãŸã¯ adapty.getPaywallForDefaultAudience ãƒ¡ã‚½ãƒƒãƒ‰ã«æ¸¡ã—ã¾ã™
  const paywall = await adapty.getPaywallForDefaultAudience('placement_id', locale);
};

ã“ã®ã‚¢ãƒ—ローãƒã¯ã„ãã¤ã‹ã®ç†ç”±ã‹ã‚‰ãŠå‹§ã‚ã—ã¾ã›ã‚“。

  1. iOSã§ã¯ã€å„ªå…ˆè¨€èªžã¨ç¾åœ¨ã®åœ°åŸŸãƒ­ã‚±ãƒ¼ãƒ«ã¯å¿…ãšã—も一致ã—ã¾ã›ã‚“ã€‚ãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚¼ãƒ¼ã‚·ãƒ§ãƒ³ãŒæ­£ã—ãé¸æŠžã•れるよã†ã«ã™ã‚‹ã«ã¯ã€æŽ¨å¥¨ã•れã¦ã„るローカライズã•ã‚ŒãŸæ–‡å­—列ファイルを使用ã™ã‚‹ã‚¢ãƒ—ローãƒã§å‹•作ã™ã‚‹Appleã®è§£æ±ºãƒ­ã‚¸ãƒƒã‚¯ã«ä»»ã›ã‚‹ã‹ã€è‡ªåˆ†ã§ãã®ä»•組ã¿ã‚’å†ç¾ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚
  2. デãƒã‚¤ã‚¹ã®ãƒ­ã‚±ãƒ¼ãƒ«ãŒã€Adaptyã§è¨­å®šã—ãŸã©ã®ãƒ­ãƒ¼ã‚«ãƒ©ã‚¤ã‚¼ãƒ¼ã‚·ãƒ§ãƒ³ã¨ã‚‚一致ã—ãªã„å ´åˆãŒã‚りã¾ã™ã€‚ãã®å ´åˆã€SDKã¯æœ€åˆã®ã‚µãƒ–ã‚¿ã‚°ã§ãƒžãƒƒãƒãƒ³ã‚°ã‚’試ã¿ã€ãれã§ã‚‚見ã¤ã‹ã‚‰ãªã„å ´åˆã¯æœ€çµ‚çš„ã«enã«ãƒ•ォールãƒãƒƒã‚¯ã—ã¾ã™ — ã“れã¯ã€ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«å¯¾ã—ã¦ãƒ‡ãƒ•ォルトã«ã—ãŸã„言語ã§ã¯ãªã„å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚ 万ãŒä¸€ã“ã®ã‚¢ãƒ—ローãƒã‚’採用ã™ã‚‹å ´åˆã¯ã€é–¢é€£ã™ã‚‹ã™ã¹ã¦ã®ãƒ¦ãƒÿÿ¼ã‚¹ã‚±ãƒ¼ã‚¹ã«å¯¾å¿œã—ã¦ã„ã‚‹ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。
ÿÿÿÿ