Ning Developer Docs

Published with permission of Ronaldo Richiery. Thanks, Ronaldo!
I have used the text from Ning tutorial for this hack to describe new Ronaldo's solution.
Sorry for mistakes, English is not my native language. Here it is!

Introduction:

Giving your members the ability to define localization options for a network is a really cool feature that many of you have been asking about. Ronaldo Richieri, a developer on this community came up with a great solution to this problem. This tutorial explains Ronaldo's solution and shows you how to implement a system that will allow members to set their own language preferences for a network by interacting with a specific network profile questions.

To implement our language selection system, we will need to complete 3 tasks. First, you will have to create the set of customized language files to be used in your network. This step allows to avoid problems in the networks where memebers have to choose between languages from default language set and customized language files or new languages provided by NC. Second, we'll need to create a member profile question on our network that will serve as member driven language configuration setting. Next, we'll be adding logic to our network's index.php file that will check a user's profile questions and determine which language pack to apply to a network at runtime.

Step 1 - Creating customized language set for your network

For example, you wish to give your memebers to choose between dafault Ning's Spanish and Chinese you don't know, English (US) customised with Language Editor and Russian language imported from some translation files. Existence in your network of ANY customised languages or imported translations demands to make all other optional languages "customised", which put all their files to the same folders. In our case you should "customize" Spanish and Chinese language files for example by opening them in language editor and adding to any word HTML comment string and saving your changes.

Import your translation file to your network using Language editor.

Step 2 - Creating Profile Question for Selecting a Preferred Language

Login to your network and login as the Network Creator.
Click on the tab labeled "Manage"
On the "Manage" page for your network, click on the link labeled "Profile Questions".
Define a new profile question with the following attributes
Question Title: Preferred Language
Answer Type: Multiple Choice
Choices: English, Español, Chinese, Russian
Save your profile question.

Step 3 - Identify the ID Value Associated with the New Preferred Language Profile Question

Make sure that you're logged out of your network.
Click on the link labeled "Sign Up"
Begin the process of creating a test account. Once you reach the page that asks you to answer profile questions for the network stop the signup process for a moment.
View the generated source code for the profile question page. (You can either right click your mouse and view source or use a tool like Firebug)
In the generated source, locate the input fields for your "Preferred Language" question. (You can do a text search for the phrase "Preferred Language")
Once you've located the input fields for "Preferred Language", we're going to want to find the question's id #.
This "Preferred Language" question consists of several radio buttons. Locate any one of the radio buttons for the "Preferred Language" profile question. You should see something that looks like:
  • Locate the "name" attribute for this radio button. The value for the "name" attribute should look something like "question_30". The integer value, contained in this attribute is the id # you're looking for (In the example above this integer value is "30"). Remember or write this value down somewhere.

    Step 3 - Adding Logic to Determine Which Language Pack is Applied To Your Network At Runtime

    Login to your network's file system using WebDav

    Open folder
    https://yourdomain.dav.ning.com/xn_resources/instances/shared/js/me...
    and find Ning assigned name for your imported Russian translation file. It looks like “custom_123456789”.

    Locate the file named "index.php".
    Make a backup copy of the index.php file in case you want to revert the functionality we'll be adding to your network

    Replace your index.php file with the following PHP code from attachment
    (Sorry, I do not know how to insert code)... )))

    Replace in the language array the name for imported translation file for Russian language custom_123456789 with the name you find in folder
    https://yourdomain.dav.ning.com/xn_resources/instances/shared/js/me...

    Replace in the two “xg_profiles_answer_q30” strings integer value "30" with the question id value you identified in step 2 of this tutorial.
    Save your changes.
    Testing:

    Verify new language functionality with an existing member account
    Login to your network with an existing member account
    Click on the tab labeled "My Page"
    Click on the link labeled "My Settings"
    Click on the link labeled "About Me"
    Select a "Preferred Language"
    Save changes and verify that the proper language pack is applied to your network.
    Verify new language functionality with a new member account
    Signup for a new member account
    Verify that once the account has been created and you are logged into your network with the new account, the correct language pack is applied to your network.
    Additional Info:

    Please remember that the functionality built in this tutorial has NOT been through our normal QA process. Please do not implement the concepts outlined in this tutorial on a production network until you've thoroughly tested and verified all the functionality for yourself.

Views: 3

Attachments:

Replies are closed for this discussion.

Replies to This Discussion

Oles, wow! I was just about to turn in for the night and then I saw this post - won't be able to sleep until I've tried it out :)
How is this different from the Ning Tutorial?
This one apparently works with customized languages. Hoping I can get it to work for Hebrew.
Beware!
It will not work as you expect as soon as you use Tab manager for the first time. Right now Tab Manager and language manager live separately and completely wrong. The proof: as soon as you save anything in Tab manager for the first time it will stay the same forever even if you change active language with Language editor...
Thanks for the warning :)
Ole... thanks for this.

When I replace “xg_profiles_answer_q30” with “xg_profiles_answer_q20” which is my question Id it still gives me the error

What actually should be placed here?
Check if you did all languages of your network "customized" as described in tutorial and check language names and encodings both in profile question and in language array in the code. These are places where your mistake can be. As soon as you have at least one customized language in your network you have to "customize" all your network languages for this hack.
Hmm... almost worked ;) I introduced the option to my network and I am able to pick from a few languages now. The only "minor" problem is that I am not able to send any invitations to new members. The button "send" simply does not work. Did you guys run across simmilar problem? Thanks for support :)
Thanks. I have no php or css experience and I almost got through. Except when I needed to update the index.php file. When I click on it in webdav, it does not open. I saw in another tutorial that there was another way of opening the index.php, but a number of different index.php maps were offered.

How can I update the index.php with the modified script that includes language options?

RSS

© 2026   Created by Ning Developer Admin.   Powered by

Badges  |  Report an Issue  |  Terms of Service