/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef _XPGETSTR_H_
#define _XPGETSTR_H_
#include "prtypes.h"
XP_BEGIN_PROTOS
/**@name Platform Independent String Resources */
/*@{*/
/**
* Get a cross platform string resource by ID.
*
* This function makes localization easier for cross platform strings.
* The cross platfrom string resources are defined in allxpstr.h.
* You should use XP_GetString when:
*
* - Any human readable string that not in front-end
*
- With the exception of HTML strings (use XP_GetStringForHTML)
*
- The translator/localizer will then translate the string defined
* in allxpstr.h and show the translated version to user.
*
* The caller should make a copy of the returned string if it needs to use
* it for a while. The same memory buffer will be used to store
* another string the next time this function is called. The caller
* does not need to free the memory of the returned string.
* @param id Specifies the string resource ID
* @return Localized (translated) string
* @see XP_GetStringForHTML
* @see INTL_ResourceCharSet
*/
PUBLIC char *XP_GetString(int id);
PUBLIC char *XP_CopyStringInUTF8(int id);
PUBLIC char *XP_CopyString(int id);
/**
* Get a cross platform HTML string resource by ID.
*
* This function makes localization easier for cross platform strings used
* for generating HTML. The cross platfrom string resources are defined in
* allxpstr.h. You should use XP_GetStringForHTML when:
*
* - Human readable string not defined in front-end
*
- The code generates HTML page and will go into HTML window
*
- Only use this when the message will be generated into HTML.
*
- Only use this if you can access to the winCharSetID.
*
- This is needed because half of the text is generated from resource
* (in resource charset) and half of the text is coming from the net
* (in winCharSetID charset). When we meet this kind of mixing charset
* condition. We use this function instead of XP_GetString().
*
*
* The code checks the current CharSetID in the resource and the
* CharSetID of the data from the net. If they are equal, it returns the
* string defined in the resource, otherwise, it will return the English
* version. So a French client can display French if the data from the
* net is in the CharSetID of French and it will use half English and half
* Japanese if the French client receives Japanese data from the net.
*
* The caller should make a copy of the returned string if it needs to use
* it for a while. The same memory buffer will be used to store
* another string the next time this function get called. The caller
* does not need to free the memory of the returned string.
*
* @param id Specifies the string resource ID
* @param winCharSetID Specifies the winCharSetID of the HTML
* @param english Specifies the English string
* @return Localized (translated) string if the winCharSetID
* matches the CharSetID of the resource. Otherwise it
* returns the English message or the English string
* @see XP_GetStringForHTML
* @see INTL_ResourceCharSet
*/
PUBLIC char *XP_GetStringForHTML(
int id,
int16 winCharSetID,
char* english
);
/*@}*/
XP_END_PROTOS
#endif