Template:Expand language/howto/newtopic

This section provides information about categorization in the Expand language suite of templates, and explains how to make a new subcategory available for use in a particular language template by use of a topic code. Editors may then employ the topic code in an template  the Expand template as shorthand for categorizing the article in which it appears into a subcategory associated with that topic code. If you've done this before, and just need a refresher, see Quickstart. Otherwise, skip to the gory details below.

Quickstart
Here is a summary of the steps to add a new subcategory and a new topic code to the table for a given  Template:Expand  (details follow):
 * determine which missing topic code you wish to add (e.g., 'bio'; see col 1 of the topic table)
 * find the topic name for the topic (e.g., 'Biography'; see col. 2 of the Topics table)
 * derive the subcategory name from the topic name and the language name (e.g.,   (click the topic name in col. 2 of the table for an example; e.g., Category:Biography articles needing translation from  Wikipedia)
 * create the Category page for using that name, and categorize it under
 * Adjust the #switch statement in the  Template:Expand  template to include:  ; for example:
 * (model after the #switch in Template:Expand French if needed)
 * To use the new code, go to an article needing categorization into the new subcat, and add:
 * to the top of the article.

Background
A topic code is just an abbreviation or word, like bio for "Biography", or sport for "Sports". Associating a topic code with a subcategory name, and enabling its use to categorize articles on which the  appears has two main requirements:
 * Creation of a category page with the appropriate subcategory name for the topic code
 * Ensuring that the wikicode of the particular  template associates the topic code with the right subcategory name.

The Expand language suite of templates automatically categorizes pages on which it appears into. For many languages, this category may grow too large, and subcategorization is needed. The suite of Expand language templates supports subcategorization into a number of pre-defined subcategories, and provides an easy way of indicating subcategorization by using the topic param in the template, instead of having to know about a complex set of category naming or remember the category names. This page explains how to do that.

Categorizing articles needing translation
Adding a new topic goes hand in hand with creating a new subcategory in which to categorize articles needing expansion. The top level (and sometimes only) category for articles needing expansion for a given language follows this pattern:

But the top level category can often grow to many hundreds or thousands of articles and that's too much for one category. In order to facilitate a better and more useful categorization, the Expand language suite of templates supports subcategorization into a number of subcategories using the topic parameter of the language-specific templates, such as Expand French or Expand German. Ten topic codes are defined, such as bio (for 'Biography') and mil (for 'Military'): when used as the value of the topic parameter, they imply (but do not automatically create) a subcategory of a specific name. For example:

would categorize the article in which it appears into subcategory ⟶ Category:.

Topic codes and topic names
The rows in the topic code table show what subcategories already exist under the top level category for a given language; for example, for French , the topic code table is here. The existing subcategories can be found by clicking (or mousing over) the topic names in column two of the table.

There are ten predefined topic codes that are conventionally available for addition to, and use by, any of the Expand LanguageName templates. They are: bio, cult, geo, gov, hist, mil, sci, sport, struct, and transp. Each code is recognized by param topic in the Expand LanguageName template, which will categorize the page on which it appears into a subcategory based on the associated topic name, e.g.,bio ⟶ Biography, and so forth).

Creating a new subcategory

 * 1) choose a topic code from the topic code table and determine the topic name from column 2 of the table (e.g.,   ⟶ )
 * 2) define the subcategory name as a function of topic name and language name, using this pattern:
 * Example: for topic name  and French   we have:
 * 1) create the category, e.g., Category:
 * Add the following text, and save the page:
 * Add the following text, and save the page:

Enable subcategorization in the Expand LanguageName template
Creating a new subcategory is independent of the Expand language template, and one could always categorize an article into the subcategory the way any article is categorized, simply by adding the category between brackets to the end of the article. But to make subcategorization easier, the specific Expand language template for a given language will categorize the article into a subcategory automatically, if the correct association between topic code and topic name appears in the wikicode of the template.

Edit the specific Expand language template for the given language; for example, for French  : edit Template:Expand French

The association between topic code and topic name for a given language, and by extension between the topic code and the subcategory name, occurs in the wikicode of the specific language name templates, in particular, in the assignment of topic, which usually occurs within a #switch statement which picks one of a number of topic codes and assigns it to the topic name. Some languages have no support for topic codes, for example, Expand Chinese; others have full support, like Expand French, and others have something in between. To enable topic to be used to categorize the article on which it appears into the associated subcategory requires this code to be set up correctly; if the wikicode does not already have it, you can copy the #switch statement that assigns the value of topic from Template:Expand French.

Classify articles into the new subcategory
To classify articles into the new subcategory, use a specific Expand language template with the topic param.


 * Edit the article and find the Expand French template
 * Paste bio into the template call; it can go anywhere, but after the name is good, e.g.:
 * Add an edit summary e.g., "Added topic=bio to Expand template."; Preview as needed, and Publish.
 * Add an edit summary e.g., "Added topic=bio to Expand template."; Preview as needed, and Publish.

Creating non-standard subcategories and topic codes
Topic codes that are not among the standard ten may be created for specific languages and associated with new subcategories as needed. Define a topic code, a topic name corresponding to the variable part of the subcategory name, and add it to the template #switch statement.

To add the new code to the topic table in the doc page, create a /topics subpage, e.g., Template:Expand French  /topics in which the row for the topics table is defined. If the file exists, it is transcluded at the end of the table. For an example, see commune in the Expand French template.

This is a more advanced type of operation which requires some basic knowledge of template writing, so it may be easier to do this by adding an Edit request on the Talk page of the template concerned. In the Edit request, specify the topic code and subcategory name you wish to add. For example, you could say, "Please add new topic code mtn to Expand Nepali which should categorize articles containing into subcategory 'Mountain articles needing translation from Nepali Wikipedia' using the topic code mtn." You can create the subcategory yourself, following the instructions above.