Forum Discussion
localization strategy and variables
I have Update 6: 1407.2208
Part of our localization strategy is as follows, a simple version:
Create a course in Storyline with English content English.story
Make a copy of that .story file; English-copy.story and rename it Spanish.story
Export all text, localize to Spanish, import localized text
Now we have two files: English.story with English content, and Spanish.story with Spanish content
Make a copy of English.story; English-copy.story and rename it MultiLanguage.story
Next, copy the scene with the Spanish screens from Spanish.story into MultiLanguage.story
(We need to have multiple languages in one .story file)
Here’s my problem:
When I localize Spanish.story I also rename all the variables so I have Spanish-specific variables; I need each language to have its own set of variables in the multi-language course.
When I copy the scene with my Spanish slides from Spanish.story into MultiLanguage.story, it not only doesn’t copy in the renamed variables, the Spanish slides are using the original English variables.
Why is this happening? How do I get the Spanish variables to come over with it?
Please watch this video demonstrating: http://screencast.com/t/zVpCos7z
English.story is attached.
Thanks for you help,
David
- SteveFlowersCommunity Member
Hey David,
This is actually fairly simple but isn't without a drawback. In the attached example, I created two language folders with the LMS publish from each one with the exception of the manifest files. In the base of the directory, I added an index_lms.html file that links to each language. The drawback is the student will have to select their language each time they resume. The upside is that no matter what language they select it will restore to the same location, provided that the published structures are identical.To do this, I published one of the outputs (you may want to title it in a way that makes sense for the whole course) then published each language to LMS / SCORM.
In my main folder, I deleted the content files leaving these in the base folder:
- adlcp_rootv1p2.xsd
- ims_xml.xsd
- imsp_rootv1p1p2.xsd
- imsmanifest.xml
- imsmd_rootv1p2p1.xsd
I created folders for each language in the base folder:
- English
- Spanish
- ...
Then I created a simple HTML file named index_lms.html in the base folder with links to each language and zipped the whole thing with imsmanifest at the base of the zip. The links are simple relative links. These link to the content in the folder and begin the LMS initialization.
In my tests, everything worked well. If your LMS throws errors on a timer if the LMSAPI doesn't initialize it could throw a wrench in the mix. Try a test with the attached SCO to see how it works.
- OlivierHalouzeCommunity Member
Hello
I read this topic and I'm looking for a solution to do the same with AICC files (not SCORM):
- a launch page with FRENCH or ENGLISH or CHINESE choice for the course
- The choice links to the content in the folder (french, chinese or english = same structure) and begin LMS intitialization
- If you turn back to the launch page and choose another language, it takes you at the same point when you left.
Could you help me please? - AshleySCommunity Member
Hi there! I need to attempt this method for SCORM 2004 and have a question about which files to delete from each language folder and which files I need to copy over to the main base folder.
The attached image is of all the files that go into the published folder for SCORM 2004. I've highlighted the files you said to delete from this folder and copy into the base folder.
Are there any others that I need to get rid of / move?
- SteveFlowersCommunity Member
Hi, Julie -
Multi-language in a single package pokes at the edges of the use cases for which the tool is designed. Most tools have trouble with this type of configuration. There are some options, depending on how your packages are built. Does your localization extend to images, video, or audio?
I've recently tackled a couple of projects with this workflow:
- Publish a single storyline file containing text blocks containing variable references.
- Build an Excel file with column headers that correspond to Storyline variables.
- Use a VBA script to generate a JSON data file with all of the variable contents.
- Build a Javascript trigger to dynamically load the JSON data into the Storyline file on cue.
- In my case, also make copies of the Storyline publish, create new folders, automatically edit the imsmanifest file, copy in a few dependencies, and automatically zip the contents of the newly generated file into a named Zip / SCO package.
I'm able to generate 100 individual SCORM packages, each with a custom title and "variable payload" through the automated script in less time than it takes Storyline to publish the origin file. It's possible to go quite a few directions with this kind of an automation and run-time load method.
Hi David,
First off, thanks for the great video of the behavior - super helpful to see all the steps you went through and then use that as a base line for trying it on my own.
I took a look at the video, and at first I thought it may be because you copied and pasted the slides in, instead of importing them. So I followed your exact steps and did the import instead - unfortunately the same thing happened.
Next I tried creating a new variable in the "Spanish" project version, and assigned that one to the button and then did the import - that one worked correctly. I've shared this with our QA team as it appears to be a bug in how the variables are retained even though you've modified their name.
I don't have a timeframe to offer in regards to when this issue will be resolved, but I've linked it to this thread so that I'll be able to update you here with any additional information. In the meantime, I'd use a workaround of creating new variables instead of relying on the ones in the original project file.
- DavidKelling1Community Member
Thanks for the confirmation on the bug Ashley, and the idea for trying to import instead, which gives the same result.
Super disappointing. Having to manually recreate all the variables is painful enough, but it is multiplied by 5 because you then have to find all the triggers (e.g., if there are on average 5 triggers that use each variable) that use those variables and change them to use the new variable, exacerbated if they are buried in conditions... It is so slick that if you rename the variable all the triggers get updated but alas I can't take advantage of that here.
Rats! If you have any other work-around tips I'd appreciate them but assume not so no further response necessary.
- SteveFlowersCommunity Member
Hey David -
Depending on how you're packaging and what types of attached materials come in, you may be able to swap the story contents to another folder with a little JavaScript without interfering with the SCORM API. This would allow you to publish each story individually. One of the problems with publishing multiples in a single file, all of those slides actually load even if they aren't accessed. Hits the bandwidth.
- DavidKelling1Community Member
I would greatly appreciate you elaborating; I have no idea what you are getting at. I need multiple languages in one .story file so the LMS can track completion of the course regardless of language viewed in. I have no idea what you are talking about... When you say "publish each story individually" that seems incompatible for my need to have all languages in one .story file... Please elaborate or point me to articles with related information. Please!
I also don't understand what you mean by "slides actually load even if they aren't accessed" given this article: http://www.articulate.com/support/storyline/how-content-is-preloaded-in-storyline so I'd love to hear more on how I'm misinterpreting that. If I have 10 scenes--one for each language--preceded by a single scene with a single language-selection slide, what is going to download? The first 3 slides in each of the 10 scenes? Ok, that would be worst case it seems but it then seems that once I select a language and go into a scene I assume Storyline won't download slides from other scenes because they aren't "next slides." I'd greatly appreciate more insight on this as well.
Thanks
- SteveFlowersCommunity Member
I haven't seen anyone do the first part, but it should be possible.
- Multiple published outputs.
- A selection screen for language.
- A javascript function to push one folder or another of the published assets into the Flash object.
You'd need to do some post publish arrangement but certainly easier than recreating and reconnecting all of your variables.
For the second part, the whole thing loads eventually. Not just the next three slides. Priority is preload for first slide, load for next three slides as the first slide plays, then shuttle in the all of the other stuff.
- Assets are loaded for the first slide (or the current slide when resuming), so the course can begin playing right away.
- Assets are then loaded for the next three slides to prevent playback delays.
- Assets are then loaded for the remainder of the course.
- SteveFlowersCommunity Member
Will try to put together an example.
- DavidKelling1Community Member
Post-publish arrangement is totally worth how much this would help me; I'd greatly appreciate any example or further instructions you can provide.
- DavidKelling1Community Member
Thank you! Super helpful.