You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASK(Node.js)中%s未被字符串替换的问题排查

Alexa翻译配置占位符不替换问题排查
  • 问题原因:Alexa Skill SDK的handlerInput.t()方法不支持%s这种printf风格占位符,它采用的是索引式占位符(如{0}、{1})来匹配传入的参数顺序。

  • 修复方案:

    1. 调整翻译配置中的QUOTE字段,将%s替换为对应索引的占位符:
      translation:{
          GREETING : 'What do you want to hear?',
          SKILL_NAME : 'Anime Quotes',
          QUOTE: 'Quote by {0}, from {1}. {2}',
      }
      
    2. 保持handlerInput.t()的参数传递逻辑不变:
      outputSpeech = handlerInput.t('QUOTE', character, anime, translated);
      

    此时传入的character会对应{0},anime对应{1},translated对应{2},实现正确的文本替换。

  • 补充说明:你提到单独输出三个字符串正常,说明参数本身不存在问题,核心问题就是占位符格式不符合Alexa SDK的要求,替换后即可解决语音读出%s的问题。

内容的提问来源于stack exchange,提问作者Geovanne Almeida

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 07:55:34