CHanging Screen Labels Based On User

CHanging Screen Labels Based On User

  
Hello,  We are trying to find the best way to implement the following scenario.

Based on the user logged in, we would like to change the labels on the screen to that users desired nomenclature.  For Example, one user would like the label for a field called "Part Number" while another user would like the field to be called "Item Number".  This would affect several (possibly many field labels),

We thought of maybe using the built in multi-lingual feature and using the built-in translation tables, but this would limit us to the number of user that could have customized labels.  

We are not (and will not) use multi-tenancy.

Any other recomendations?
Regards
Steven -

Why don't you just have a set of static entities that contain the possible "dictionaries" for each user, and then have a cross reference table between that and the User Id... and when you need a value, pull from that table using the combination of the value you want and the user id?

J.Ja
"one user would like the label for a field called "Part Number" while another user would like the field to be called "Item Number"."

You should realize that this will create a support nightmare, as every user will have their own names for stuff on the screen, and also a potential business problem, as users talking to each other will use different nomentclature. So this seems like a very, very bad idea to me.

Based on this statement "Based on the user logged in, we would like to change the labels on the screen to that users desired nomenclature." it sounds like you want the users to be able to change the labels they see, which sounds like a really bad idea, in my opinion.

Are you sure having users with different roles wouldn't suit your requirements? It is common for applications to have different views on the same data for different roles, and that is easy to impement using the platform's CheckRole actions to choose which view is displayed. 
Thanks for your feedback, but I guess i did not make my initial question too clear.  The application we have is Saas based (meaning that different unrelated companies will be using it).  We are not using the multi-tenancy capability of the OutSystems Platform.

We have a situation where one company wants the "Part Number" to be called "Item Number" for ALL it's users, and another company is OK with the label "Part Number".  There are more fields than just the part number field/label wheret companies use different nomenclature (supplier/vendor, etc.).

I hope this clarifies my question.
Yeah, it does. However, I think not using multi-tenancy is really asking for disaster in the long term. Bugs could trigger data from a company being shown for a different company etc. Not something I'd like to take credit for...
Steven -

1. Kilian's right that you should probably be using multi-tenancy. But that is an entirely separate discussion and doesn't affect what you do here.

2. That said... just do what I said above. Make a table that holds:
a. A name for the field, a reference to it, whatever.
b. A reference to the user or tenant or account or whoever controls the labels.
c. A value for the label
... and then just use a function that cross references the label table with the currently logged-in user and the label you need the label for.

Basically, you are just doing what the multi-language lookup does, but based on user ID, account, tenant ID, etc. instead of language code.

J.Ja