DAB - no variants show up in app

I’m trying to update a dictionary app made through DAB, using LIFT out of FLEx. The first time I made the app, my variants also showed up beautifully in my app. However, I updated my Lexicon (thanks for showing me how to get that to work right last month!), and now when I make the app, the variants don’t show up. The minor entries and example sentences still show up, which is great, but the variants don’t. In my DAB, I do have all the variant boxes, checked, though:

It’s true that I changed the name of some of the variant types in FLEx, which didn’t cause a problem in FLEx. However, now the names of some (but not all) variant types in DAB aren’t the same as what is used in FLEx. I don’t see a way to change or update those in DAB.

Any help? I was excited a month ago to learn that I didn’t have to re-do all the settings to update my app as we add more words to the dictionary, so I’m hoping you guys will be able to come through for me again. Thanks!

Hi Susie,

There are some aspects of “updating” a database in DAB from a new version of the LIFT file that don’t work quite right. My guess is that the list of variants is populated by the loading of the first LIFT file, and now that some of those variant names have changed in FLEx (and in the new LIFT file), they aren’t reloaded by DAB. Can you confirm that the variants whose names have not changed do still show up in the app?

Th easiest way to fix this problem would be to create a new app in DAB with the updated LIFT file. I say “easiest”, but depending on how much time you’ve invested in making the app, that might be quite painful! You could at least give it a try, making a plain vanilla app (not putting all the bells and whistles into the app), to make sure that it resolves the problem. If there aren’t a lot of bells and whistles in your app, this might be the best solution.

If you have invested a lot of time in making the app, and it would be painful to reproduce all of those features, then it might be possible to manually update the variant names to match the new data. For each app, there is an .appDef file, an XML file that describes all of the details of the configuration of the app. It is found in
Documents\App Builder\Dictionary Apps\App Projects\[app name]\[app name].appDef

It is possible, if you are careful, to make changes manually in this .appDef file with a text editor (like NotePad) to fix certain things that are problematic about your app, or to get around bugs (like this one!) in the App Builder program. But you can also really mess up your app! So make a backup copy of the .appDef file (or better yet the entire app folder) before you make any changes manually to the .appDef file. Also, only make changes to the .appDef file when the DAB program is closed.

The different variants are defined in a section of the .appDef file that looks like this:
image

So after opening the .appDef file in your text editor, you can search for “variant”, and find the place where the variants are defined. You could manually update the different variant types in that section. If you took my advice above and created the plain vanilla version of the app (that has working variants), you might be able to copy the entire <fields> section of that test .appDef file and replace the <fields> section of your real .appDef file (after you’ve made a backup copy!), save that, then open DAB and try to build again… and that might just solve the problem.

If it doesn’t, then restore the .appDef file in your real app and build it again, to make sure you didn’t mess anything up. Then send me (here or in a personal message) the .appDef files for your test app where the variants work and for your real app, and I will see if I can produce a combination of the two that works for you.

Jeff

Hi Jeff,

Thanks so much for your helpful answer. I had guessed that it was probably something like this, seeing as I didn’t see a place in the “Field” tab of DAB that would allow you to update them. That may be a good update in a future version if it weren’t too complicated.

I haven’t been able to confirm that the variants whose names have not changed do still show up in the app. I found some variants that looked like they had the same name and they didn’t show up. So maybe I changed them slightly (adding a space or deleting one or something) and that’s why none of the variants seem to show up.

I think that what I will do is re-make the app from scratch, since it doesn’t have a lot of bells and whistles yet. But I hadn’t wanted to do that before I knew that that was one of the best options. If, in the future, I run into the problem again (aka I mess myself up this way again), I may return to this thread, take your advice, and try to change the code if that seems easier at the time.

Thanks again!
Susie

Hi again,

Well, I made a new app from scratch, with a new LIFT file. However, when I did so, I was surprised that the “Fields” tab in DAB only had 2 types of variants, whereas I know that my data in FLEx has many more than that (and my previous app had many more than that as well). But I tried it anyway.

When I looked at the app, I saw that while complex forms of the words are there (ex. compound words that use the word as one part of the compound word), I don’t see any variants. I also noticed that the compound words don’t show as their own headword in the app! I honestly can’t say for sure whether that problem was around before I re-did the app or not.

In my FLEx, the compound words are listed as being in the Main Dictionary, just like the non-compound words (This is a screenshot from a compound word):
image

Any idea how to fix my app now to get the variants and compounds to show up? (While we’re at it, I’d love it if the Inflection Classes would show up, too.)

If you think it’s best to go back to the old version and play around with the .appDef file, Jeff, I can.

Thanks so much for all your help!

Hi Jeff,

Any thoughts about how to get my app to work now, given the additional information in the last message?

Thanks!
Susie