How to mix a CJK font and other font in ConTeXt

cjkcontextfonts

In XeTex or LuaTex, we can switch sans fonts between CJK and English automatically. How can we do a similar thing in ConText?

\setmainfont[]{Optima}
\setsansfont[]{Optima}
\ifXeTeX
  \usepackage{xeCJK}
  \setCJKmainfont[]{IPAexGothic}
\fi
\ifLuaTeX
  \usepackage[]{luatexja-fontspec}
  \setmainjfont[]{IPAexGothic}
\fi

Best Answer

I won't use the same fonts as you as I don't have them installed in my system, but this might serve you as a template. I assume your fonts fully support the characters you want to display. My example involves Korean because it's more familiar to me, but this should work for Chinese and Japanese, too.

%%% Only for this example
%\setuppapersize[A6]

%%% The following presets are available
%%% 1. range:korean
%%% 2. range:chinese
%%% 3. range:japanese
%%% See font-sel.mkxl for more presets

%%% Otherwise, use ranges (range={...})
%%% https://wiki.contextgarden.net/List_of_Unicode_blocks

%%% You can add fallbacks and families for serif, sans, mono and math, if needed. 
%%% I'm only following your example
\definefallbackfamily[main][serif][Noto Serif CJK KR]
    [preset=range:korean,
     force=yes] %force=yes is necessary here
\definefontfamily[main][serif][URW Classico]
\definefontfamily[main][sans][URW Classico]

%%% Enable it for line breaking across CJK words
%\setscript[hangul]
\setupbodyfont[main]
\starttext
일식(日蝕) 'solar eclipse' and 일식(日食) 'Japanese food' are homophones in Korean.

%https://colorcodedlyrics.com/2020/12/taeyeon-taeyeon-what-do-i-call-you
What do I call you
남이잖아
별일 없던 척
말을 거나
그렇게 꼭 껴안았는데
So what do I call you now

What do I call you
이럴 때엔
이름이 역시
무난할까
내 연인이었던
my honey
my daisy
my only
So what do I call you now
\stoptext

enter image description here