|%android_code%|Android Locale identifier used to name “values-” directories|
|%osx_code%|OS X Locale identifier used to name “.lproj” directories|
|%osx_locale%|OS X Locale used to name translated resources (i.e. uk, zh-Hans, zh_HK)|
|%original_file_name%|Original file name|
|%file_name%|File name without extension|
|%file_extension%|Original file extension|
|%original_path%|Use parent folders’ names in your project to build the file path in the resulting archive|
Example for Android projects
/values-%android_code%/%original_file_name%
It happens because you have two language placeholders in your translation pattern app/src/main/res/values-%two_letters_code%-%locale%/%original_file_name% - %two_letters_code% and %locale%, so during the export, these placeholders are replacing with the fi and fi-FI values.
Just try updating your pattern with the following: app/src/main/res/values-%two_letters_code%/%original_file_name%.
Before the next translation download, be sure that this pattern is also updated in the File Settings in your Crowdin project (Resulting file after translations export)
These placeholders are not new, they have always existed in file settings - translation path. Or in CLI configuration.
%locale% is simply the most popular and the easiest one, never confuses anyone. Even not developer can handle them without a problem. Android code works for Android only, and the point is, not all users who call their project as Android uses pure Android inside. Even my team works with .json and then they are converted outside of Crowdin.
Still changing patterns is like 2 minutes work, you wouldnt lost too much time and can always comeback to previous set up if new path doesnt work well