Jump to content
Wikipedia The Free Encyclopedia

Module:GHS phrases

From Wikipedia, the free encyclopedia
Module documentationview edit history purge
This module is rated as ready for general use. It has reached a mature state, is considered relatively stable and bug-free, and may be used wherever appropriate. It can be mentioned on help pages and other Wikipedia resources as an option for new users. To minimise server load and avoid disruptive output, improvements should be developed through sandbox testing rather than repeated trial-and-error editing.
Page extended-confirmed-protected This module is currently under extended confirmed protection.
Extended confirmed protection prevents edits from all unregistered editors and registered users with fewer than 30 days tenure and 500 edits. The policy on community use specifies that extended confirmed protection can be applied to combat disruption, if semi-protection has proven to be ineffective. Extended confirmed protection may also be applied to enforce arbitration sanctions. Please discuss any changes on the talk page; you may submit an edit request to ask for uncontroversial changes supported by consensus.
This module depends on the following other modules:

List all phrases

GHS H-phrases (114)[1]
Code Phrase
H200 (Obsolete) Unstable explosive.
H201 (Obsolete) Explosive: mass explosion hazard.
H202 (Obsolete) Explosive: severe projection hazard.
H203 (Obsolete) Explosive: fire, blast or projection hazard.
H204 Fire or projection hazard.
H205 (Obsolete) May mass explode in fire.
H206 Fire, blast or projection hazard: increased risk of explosion if desensitizing agent is reduced.
H207 Fire or projection hazard; increased risk of explosion if desensitizing agent is reduced.
H208 Fire hazard; increased risk of explosion if desensitizing agent is reduced.
H209 Explosive.
H210 Very explosive.
H211 May be sensitive.
H220 Extremely flammable gas.
H221 Flammable gas.
H222 Extremely flammable aerosol.
H223 Flammable aerosol.
H224 Extremely flammable liquid and vapour.
H225 Highly flammable liquid and vapour.
H226 Flammable liquid and vapour.
H227 Combustible liquid.
H228 Flammable solid.
H229 Pressurized container: may burst if heated.
H230 May react explosively even in the absence of air.
H231 May react explosively even in the absence of air at elevated pressure and/or temperature.
H232 May ignite spontaneously if exposed to air.
H240 Heating may cause an explosion.
H241 Heating may cause a fire or explosion.
H242 Heating may cause a fire.
H250 Catches fire spontaneously if exposed to air.
H251 Self-heating: may catch fire.
H252 Self-heating in large quantities: may catch fire.
H260 In contact with water releases flammable gases which may ignite spontaneously.
H261 In contact with water releases flammable gas.
H270 May cause or intensify fire: oxidizer.
H271 May cause fire or explosion: strong oxidizer.
H272 May intensify fire: oxidizer.
H280 Contains gas under pressure: may explode if heated.
H281 Contains refrigerated gas: may cause cryogenic burns or injury.
H282 Extremely flammable chemical under pressure: May explode if heated.
H283 Flammable chemical under pressure: May explode if heated.
H284 Chemical under pressure: May explode if heated.
H290 May be corrosive to metals.
H300 Fatal if swallowed.
H300+H310 Fatal if swallowed or in contact with skin.
H300+H310+H330 Fatal if swallowed, in contact with skin or if inhaled.
H300+H330 Fatal if swallowed or if inhaled.
H301 Toxic if swallowed.
H301+H311 Toxic if swallowed or in contact with skin.
H301+H311+H331 Toxic if swallowed, in contact with skin or if inhaled.
H301+H331 Toxic if swallowed or if inhaled.
H302 Harmful if swallowed.
H302+H312 Harmful if swallowed or in contact with skin.
H302+H312+H332 Harmful if swallowed, in contact with skin or if inhaled.
H302+H332 Harmful if swallowed or inhaled.
H303 May be harmful if swallowed.
H303+H313 May be harmful if swallowed or in contact with skin.
H303+H313+H333 May be harmful if swallowed, in contact with skin or if inhaled.
H303+H333 May be harmful if swallowed or if inhaled.
H304 May be fatal if swallowed and enters airways.
H305 May be harmful if swallowed and enters airways.
H310 Fatal in contact with skin.
H310+H330 Fatal in contact with skin or if inhaled.
H311 Toxic in contact with skin.
H311+H331 Toxic in contact with skin or if inhaled.
H312 Harmful in contact with skin.
H312+H332 Harmful in contact with skin or if inhaled.
H313 May be harmful in contact with skin.
H313+H333 May be harmful in contact with skin or if inhaled.
H314 Causes severe skin burns and eye damage.
H315 Causes skin irritation.
H315+H319 Causes skin irritation and serious eye irritation.
H315+H320 Causes skin and eye irritation.
H316 Causes mild skin irritation.
H317 May cause an allergic skin reaction.
H318 Causes serious eye damage.
H319 Causes serious eye irritation.
H320 Causes eye irritation.
H330 Fatal if inhaled.
H331 Toxic if inhaled.
H332 Harmful if inhaled.
H333 May be harmful if inhaled.
H334 May cause allergy or asthma symptoms of breathing difficulties if inhaled.
H335 May cause respiratory irritation.
H336 May cause drowsiness or dizziness.
H340 May cause genetic defects.
H341 Suspected of causing genetic defects.
H350 May cause cancer.
H350i May cause cancer by inhalation.
H351 Suspected of causing cancer.
H360 May damage fertility or the unborn child.
H360D May damage the unborn child.
H360Df May damage the unborn child. Suspected of damaging fertility.
H360F May damage fertility.
H360FD May damage fertility. May damage the unborn child.
H360Fd May damage fertility. Suspected of damaging the unborn child.
H361 Suspected of damaging fertility or the unborn child.
H361d Suspected of damaging the unborn child.
H361f Suspected of damaging fertility.
H361fd Suspected of damaging fertility. Suspected of damaging the unborn child.
H362 May cause harm to breast-fed children.
H370 Causes damage to organs.
H371 May cause damage to organs.
H372 Causes damage to organs through prolonged or repeated exposure.
H373 May cause damage to organs through prolonged or repeated exposure.
H400 Very toxic to aquatic life.
H401 Toxic to aquatic life.
H402 Harmful to aquatic life.
H410 Very toxic to aquatic life with long lasting effects.
H411 Toxic to aquatic life with long lasting effects.
H412 Harmful to aquatic life with long lasting effects.
H413 May cause long lasting harmful effects to aquatic life.
H420 Harms public health and the environment by destroying ozone in the upper atmosphere.
H421 Harms public health and the environment by contributing to global warming.
H441 (Obsolete) Very toxic to terrestrial invertebrates.
GHS P-phrases (182)[1]
Code Phrase
P101 If medical advice is needed, have product container or label at hand.
P102 Keep out of reach of children.
P103 Read carefully and follow all instructions.
P201 (Obsolete) Obtain special instructions before use.
P202 (Obsolete) Do not handle until all safety precautions have been read and understood.
P203 Obtain, read and follow all safety instructions before use.
P210 Keep away from heat, hot surfaces, sparks, open flames and other ignition sources. No smoking.
P211 Do not spray on an open flame or other ignition source.
P212 Avoid heating under confinement or reduction of the desensitized agent.
P220 Keep away from clothing and other combustible materials.
P221 (Obsolete) Take any precaution to avoid mixing with combustibles/...
P222 Do not allow contact with air.
P223 Do not allow contact with water.
P230 Keep diluted with ...
P231 Handle and store contents under inert gas/...
P231+P232 Handle and store contents under inert gas/... Protect from moisture.
P232 Protect from moisture.
P233 Keep container tightly closed.
P234 Keep only in original container.
P235 Keep cool.
P235+P410 (Obsolete) Keep cool. Protect from sunlight.
P236 Keep only in original packaging; Division ... in the transport configuration.
P240 Ground and bond container and receiving equipment.
P241 Use explosion-proof [electrical/ventilating/lighting/...] equipment.
P242 Use non-sparking tools.
P243 Take action to prevent static discharges.
P244 Keep valves and fittings free from oil and grease
P250 Do not subject to grinding/shock/friction/...
P251 Do not pierce or burn, even after use.
P260 Do not breathe dust/fume/gas/mist/vapours/spray.
P261 Avoid breathing dust/fume/gas/mist/vapours/spray.
P262 Do not get in eyes, on skin, or on clothing.
P263 Avoid contact during pregnancy and while nursing.
P264 Wash hands [and ...] thoroughly after handling.
P264+P265 Wash hands [and ...] thoroughly after handling. Do not touch eyes.
P265 Do not touch eyes.
P270 Do not eat, drink or smoke when using this product.
P271 Use only outdoors or with adequate ventilation.
P272 Contaminated work clothing should not be allowed out of the workplace.
P273 Avoid release to the environment.
P280 Wear protective gloves/protective clothing/eye protection/face protection/hearing protection/...
P281 (Obsolete) Use personal protective equipment as required.
P282 Wear cold insulating gloves and either face shield or eye protection.
P283 Wear fire resistant or flame-retardant clothing.
P284 In case of inadequate ventilation wear respiratory protection.
P285 (Obsolete) In case of inadequate ventilation wear respiratory protection.
P301 IF SWALLOWED:
P301+P310 (Obsolete) IF SWALLOWED: Immediately call a POISON CENTER or doctor/physician.
P301+P310+P330 (Obsolete) IF SWALLOWED: Immediately call a POISON CENTER or doctor/physician. Rinse mouth.
P301+P312 (Obsolete) IF SWALLOWED: Call a POISON CENTER or doctor/physician if you feel unwell.
P301+P312+P330 (Obsolete) IF SWALLOWED: Call a POISON CENTER or doctor/physician if you feel unwell. Rinse mouth.
P301+P316 IF SWALLOWED: Get emergency medical help immediately.
P301+P317 IF SWALLOWED: IF SWALLOWED: Get medical help.
P301+P330+P331 IF SWALLOWED: Rinse mouth. Do NOT induce vomiting.
P302 IF ON SKIN:
P302+P312 (Obsolete) IF ON SKIN: Call a POISON CENTER or doctor/physician if you feel unwell.
P302+P317 (Obsolete) IF ON SKIN: Get medical help.
P302+P334 IF ON SKIN: Immerse in cool water or wrap in wet bandages.
P302+P335+P334 IF ON SKIN: Brush off loose particles from skin and immerse in cool water [or wrap in wet bandages].
P302+P350 (Obsolete) IF ON SKIN: Gently wash with soap and water.
P302+P352 IF ON SKIN: Wash with plenty of water/...
P302+P352+P312 (Obsolete) IF ON SKIN: Wash with soap and water. Call a POISON CENTER or doctor/physician if you feel unwell.
P302+P361+P354 IF ON SKIN: Take off immediately all contaminated clothing. Immediately rinse with water for several minutes.
P303 IF ON SKIN (or hair):
P303+P361+P353 IF ON SKIN (or hair): Remove/Take off immediately all contaminated clothing. Rinse skin with water [or shower].
P303+P361+P353+P315 (Obsolete) IF ON SKIN (or hair): Remove/Take off immediately all contaminated clothing. Rinse skin with water [or shower]. Get immediate medical advice/attention.
P304 IF INHALED:
P304+P312 (Obsolete) IF INHALED: Call a POISON CENTER or doctor/physician if you feel unwell.
P304+P317 (Obsolete) IF INHALED: Get medical help.
P304+P340 IF INHALED: Remove person to fresh air and keep comfortable for breathing.
P304+P340+P310 (Obsolete) IF INHALED: Remove victim to fresh air and keep at rest in a position comfortable for breathing. Immediately call a POISON CENTER or doctor/physician.
P304+P340+P311 (Obsolete) IF INHALED: Remove victim to fresh air and keep at rest in a position comfortable for breathing. Call a POISON CENTER or doctor/physician.
P304+P340+P312 (Obsolete) IF INHALED: Remove victim to fresh air and keep at rest in a position comfortable for breathing. Call a POISON CENTER or doctor/physician if you feel unwell.
P304+P340+P315 (Obsolete) IF INHALED: Remove victim to fresh air and keep at rest in a position comfortable for breathing. Get immediate medical advice/attention.
P304+P341 (Obsolete) IF INHALED: If breathing is difficult, remove victim to fresh air and keep at rest in a position comfortable for breathing.
P305 IF IN EYES:
P305+P351+P338 IF IN EYES: Rinse continuously with water for several minutes. Remove contact lenses, if present and easy to do. Continue rinsing.
P305+P351+P338+P310 (Obsolete) IF IN EYES: Rinse continuously with water for several minutes. Remove contact lenses, if present and easy to do. Continue rinsing. Immediately call a POISON CENTER or doctor/physician.
P305+P351+P338+P315 (Obsolete) IF IN EYES: Rinse cautiously with water for several minutes. Remove contact lenses, if present and easy to do. Continue rinsing. Get immediate medical advice/attention.
P305+P354+P338 IF IN EYES: Immediately rinse with water for several minutes. Remove contact lenses, if present and easy to do. Continue rinsing.
P306 IF ON CLOTHING:
P306+P360 IF ON CLOTHING: Rinse immediately contaminated clothing and skin with plenty of water before removing clothes.
P307 (Obsolete) IF exposed:
P307+P311 (Obsolete) IF exposed: Call a POISON CENTER or doctor/physician.
P308 IF exposed or concerned:
P308+P310 (Obsolete) IF exposed or concerned: Immediately call a POISON CENTER or doctor/physician.
P308+P311 (Obsolete) IF exposed or concerned: Call a POISON CENTER or doctor/physician.
P308+P313 (Obsolete) IF exposed or concerned: Get medical advice/attention.
P308+P316 IF exposed or concerned: Get emergency medical help immediately.
P309 (Obsolete) IF exposed or you feel unwell:
P309+P311 (Obsolete) IF exposed or you feel unwell: Call a POISON CENTER or doctor/physician.
P310 (Obsolete) Immediately call a POISON CENTER or doctor/physician.
P311 (Obsolete) Call a POISON CENTER or doctor/physician.
P312 (Obsolete) Call a POISON CENTER or doctor/physician if you feel unwell.
P313 (Obsolete) Get medical advice/attention.
P314 (Obsolete) Get Medical advice/attention if you feel unwell.
P315 (Obsolete) Get immediate medical advice/attention.
P316 Get emergency medical help immediately.
P317 Get medical help.
P318 If exposed or concerned, get medical advice.
P319 Get medical help if you feel unwell.
P320 Specific treatment is urgent (see information on this label and safety data sheet).
P321 Specific treatment (see information on this label and safety data sheet).
P322 Specific treatment is urgent (see information on the safety data sheet).
P323 Specific treatment (see information on the safety data sheet).
P330 Rinse mouth.
P331 Do NOT induce vomiting.
P332 If skin irritation occurs:
P332+P313 (Obsolete) If skin irritation occurs: Get medical advice/attention.
P332+P317 If skin irritation occurs: Get medical help.
P333 If skin irritation or a rash occurs:
P333+P313 (Obsolete) If skin irritation or a rash occurs: Get medical advice/attention.
P333+P317 If skin irritation or rash occurs: Get medical help.
P334 Immerse in cool water [or wrap in wet bandages].
P335 Brush off loose particles from skin.
P335+P334 (Obsolete) Brush off loose particles from skin. Immerse in cool water/wrap in wet bandages.
P336 Thaw frosted parts with lukewarm water. Do not rub affected areas.
P336+P315 (Obsolete) Thaw frosted parts with lukewarm water. Do not rub affected area. Get immediate medical advice/attention.
P336+P317 Immediately thaw frosted parts with lukewarm water. Do not rub affected area. Get medical help.
P337 If eye irritation persists:
P337+P313 (Obsolete) If eye irritation persists: Get medical advice/attention.
P337+P317 If eye irritation persists: Get medical help.
P338 Remove contact lenses if present and easy to do. Continue rinsing.
P340 Remove person to fresh air and keep comfortable for breathing.
P341 (Obsolete) If breathing is difficult, remove victim to fresh air and keep at rest in a position comfortable for breathing.
P342 If experiencing respiratory symptoms:
P342+P311 (Obsolete) If experiencing respiratory symptoms: Call a POISON CENTER or doctor/physician.
P342+P316 If experiencing respiratory symptoms: Get emergence medical help immediately.
P350 (Obsolete) Gently wash with soap and water.
P351 Rinse cautiously with water for several minutes.
P352 Wash with plenty of water/...
P353 Rinse skin with water [or shower].
P354 Immediately rinse with water for several minutes.
P360 Rinse immediately contaminated clothing and skin with plenty of water before removing clothes.
P361 Take off immediately all contaminated clothing.
P361+P364 Take off immediately all contaminated clothing and wash it before reuse.
P362 Take off contaminated clothing.
P362+P364 Take off contaminated clothing and wash it before reuse.
P363 Wash contaminated clothing before reuse.
P364 And wash it before reuse.
P370 In case of fire:
P370+P372+P380+P373 In case of fire: Explosion risk. Evacuate area. DO NOT fight fire when fire reaches explosives.
P370+P376 In case of fire: Stop leak if safe to do so.
P370+P378 In case of fire: Use ... to extinguish.
P370+P380 (Obsolete) In case of fire: Evacuate area.
P370+P380+P375 In case of fire: Evacuate area. Fight fire remotely due to the risk of explosion.
P370+P380+P375+P378 In case of fire: Evacuate area. Fight fire remotely due to the risk of explosion. Use...to extinguish.
P371 In case of major fire and large quantities:
P371+P380+P375 In case of major fire and large quantities: Evacuate area. Fight fire remotely due to the risk of explosion.
P372 Explosion risk.
P373 DO NOT fight fire when fire reaches explosives.
P374 (Obsolete) Fight fire with normal precautions from a reasonable distance.
P375 Fight fire remotely due to the risk of explosion.
P376 Stop leak if safe to do so.
P377 Leaking gas fire: Do not extinguish, unless leak can be stopped safely.
P378 Use ... to extinguish.
P380 Evacuate area.
P381 In case of leakage, eliminate all ignition sources.
P390 Absorb spillage to prevent material damage.
P391 Collect spillage.
P401 Store in accordance with ...
P402 Store in a dry place.
P402+P404 Store in a dry place. Store in a closed container.
P403 Store in a well-ventilated place.
P403+P233 Store in a well-ventilated place. Keep container tightly closed.
P403+P235 Store in a well-ventilated place. Keep cool.
P404 Store in a closed container.
P405 Store locked up.
P406 Store in a corrosion resistant/... container with a resistant inner liner.
P407 Maintain air gap between stacks or pallets.
P410 Protect from sunlight.
P410+P403 Protect from sunlight. Store in a well-ventilated place.
P410+P412 Protect from sunlight. Do not expose to temperatures exceeding 50 oC/122 oF.
P411 Store at temperatures not exceeding ... oC/... oF.
P411+P235 (Obsolete) Store at temperatures not exceeding ... oC/... oF. Keep cool.
P412 Do not expose to temperatures exceeding 50 oC/122 oF.
P413 Store bulk masses greater than ... kg/... lbs at temperatures not exceeding ... °C/... °F.
P420 Store separately.
P422 (Obsolete) Store contents under ...
P501 Dispose of contents/container to ...
P502 Refer to manufacturer or supplier for information on recovery or recycling.
P503 Refer to manufacturer/supplier... for information on disposal/recovery/recycling.

List formats

|listtype=abbr (default)
P201, P302+P334, P502
Listtype options
|format=inline
P201: "(Obsolete) Obtain special instructions before use.", P302+P334: "IF ON SKIN: Immerse in cool water or wrap in wet bandages.", P502: "Refer to manufacturer or supplier for information on recovery or recycling."
|format=bulleted
  • P201: (Obsolete) Obtain special instructions before use.
  • P302+P334: IF ON SKIN: Immerse in cool water or wrap in wet bandages.
  • P502: Refer to manufacturer or supplier for information on recovery or recycling.
|format=unbulleted
  • P201: (Obsolete) Obtain special instructions before use.
  • P302+P334: IF ON SKIN: Immerse in cool water or wrap in wet bandages.
  • P502: Refer to manufacturer or supplier for information on recovery or recycling.
|format=horizontal
  • P201: (Obsolete) Obtain special instructions before use.
  • P302+P334: IF ON SKIN: Immerse in cool water or wrap in wet bandages.
  • P502: Refer to manufacturer or supplier for information on recovery or recycling.
|format=ordered
  1. P201: (Obsolete) Obtain special instructions before use.
  2. P302+P334: IF ON SKIN: Immerse in cool water or wrap in wet bandages.
  3. P502: Refer to manufacturer or supplier for information on recovery or recycling.
|format=horizontal_ordered
  1. P201: (Obsolete) Obtain special instructions before use.
  2. P302+P334: IF ON SKIN: Immerse in cool water or wrap in wet bandages.
  3. P502: Refer to manufacturer or supplier for information on recovery or recycling.

Full abbr list

Complete H, P lists (H200, H201, H202, ...)

As of 31 May 2023:

  • GHS H-phrases (114) H200, H201, H202, H203, H204, H205, H206, H207, H208, H209, H210, H211, H220, H221, H222, H223, H224, H225, H226, H227, H228, H229, H230, H231, H232, H240, H241, H242, H250, H251, H252, H260, H261, H270, H271, H272, H280, H281, H282, H283, H284, H290, H300, H300+H310, H300+H310+H330, H300+H330, H301, H301+H311, H301+H311+H331, H301+H331, H302, H302+H312, H302+H312+H332, H302+H332, H303, H303+H313, H303+H313+H333, H303+H333, H304, H305, H310, H310+H330, H311, H311+H331, H312, H312+H332, H313, H313+H333, H314, H315, H315+H320, H316, H317, H318, H319, H320, H330, H331, H332, H333, H334, H335, H336, H340, H341, H350, H350i, H351, H360, H360D, H360Df, H360F, H360FD, H360Fd, H361, H361d, H361f, H361fd, H362, H370, H371, H372, H373, H400, H401, H402, H410, H411, H412, H413, H420, H441
Order entered: |H201|H200| to check sorting.
  • GHS P-phrases (182) P102, P103, P201, P202, P203, P210, P211, P212, P220, P221, P222, P223, P230, P231, P231+P232, P232, P233, P234, P235, P235+P410, P236, P240, P241, P242, P243, P244, P250, P251, P260, P261, P262, P263, P264, P264+P265, P265, P270, P271, P272, P273, P280, P281, P282, P283, P284, P285, P301, P301+P310, P301+P310+P330, P301+P312, P301+P312+P330, P301+P330+P331, P302, P302+P312, P302+P317, P302+P334, P302+P335+P334, P302+P350, P302+P352, P302+P352+P312, P302+P353[? ], P302+P361+P354, P303, P303+P361+P353, P303+P361+P353+P315, P304, P304+P312, P304+P317, P304+P340, P304+P340+P310, P304+P340+P311, P304+P340+P312, P304+P340+P315, P304+P341, P305, P305+P351+P338, P305+P351+P338+P310, P305+P354+P338, P306, P306+P360, P307, P307+P311, P308, P308+P310, P308+P311, P308+P313, P308+P316, P308+P360[? ], P309, P309+P311, P310, P311, P312, P313, P314, P315, P318, P320, P321, P322, P330, P331, P332, P332+P313, P332+P317, P333, P333+P313, P333+P317, P334, P335, P335+P334, P336, P336+P315, P336+P317, P337, P337+P313, P337+P317, P338, P340, P341, P342, P342+P311, P342+P316, P350, P351, P352, P353, P354, P360, P361, P361+P364, P362, P362+P364, P363, P364, P370, P370+P372+P380+P373, P370+P376, P370+P378, P370+P380, P370+P380+P375, P370+P380+P375+P378, P371, P371+P380+P375, P372, P373, P374, P375, P376, P377, P378, P380, P381, P390, P391, P401, P402, P402+P404, P403, P403+P233, P403+P235, P404, P405, P406, P407, P410, P410+P403, P410+P412, P411, P411+P235, P412, P413, P420, P422, P501, P502, P503
Order entered: |P103|P102| to check sorting.

Features

Hide Doubles

Repeated phrase codes are hidden:

  • {{GHS phrases|H400|H401|H401|H401}}H400, H401

Omit Rules

|omit=true (default)
Omit Rules as applied by {{GHS phrases }} (
)

Omit Rules: when the keep ID is present, do not show the omit ID phrase
• keep P203, omit P103
• keep P234, omit P406
• keep H411, omit H401
• keep P333+P317, omit P332+P317
• keep P321, omit P323
• keep P322, omit P323
• keep P236, omit P234
• keep H314, omit H318
• keep P333, omit P332
• keep P413, omit P235
• keep P411, omit P235
• keep P320, omit P322
• keep P260, omit P261
• keep H410, omit H400
• keep H412, omit H402

  • {{GHS phrases|H314|H318}}H314

All module functions

module function template note
main {{GHS phrases }}
{{H-phrases}} {{P-phrases}}

|setid=H, P preset
listAll {{GHS phrases/inline }} equals main + |listtype=inline
numberOfPhrases {{GHS phrases/number of phrases }}
listAll {{GHS phrases/list all }}
listOmitRules {{GHS phrases/list omit rules }} documentation only; no |setid=
getMinMax {{GHS phrases/number of phrases }}
{{GHS phrases/list all }}
enables |min= and |max=

Tracking

See also

Lists: GHS hazard statements, GHS precautionary statements

Reference

  1. ^ a b "Globally Harmonized System of Classification and Labelling of Chemicals (GHS)" (pdf). Geneva: United Nations. 2025. Annex 3: Codification of hazard statements, codification and use of precautionary statements, codification of hazard pictograms and examples of precautionary pictograms (pp. 293–408).
The above documentation is transcluded from Module:GHS phrases/doc. (edit | history)
Editors can experiment in this module's sandbox (edit | diff) and testcases (edit | run) pages.
Subpages of this module.

 --------------------------------------------------------------------------------
 -- Module:GHS phrases
 -- 
 -- main: reads GHS parameters (arguments like "H301", "P401")
 --		and returns for each (listtype='abbr'):
 --		phraseID visible; formal phrase text as <abbr title="...">
 -- setID	= "H" or "P"
 -- phraseID = e.g. "H201", "P231+P234"
 -- phrase text read from array tables in [[Module:GHS phrases/data]]
 --
 -- Implements: [[Template:GHS phrases]]
 -- Helppage: [[Template:GHS phrases]]
 -- Error category: [[Category:GHS errors]], [[Category:GHS warnings]] (mainspace pages only)
 --
 -- Also: 
 -- listAll(), numberOfPhrases(), listOmitRules(),
 -- listtype, omit
 --------------------------------------------------------------------------------
 require('strict')
 localr={}-- "r" for return, so no confusion with setID P
 localGHSdata=mw.loadData('Module:GHS phrases/data')
 localgetArgs=require('Module:Arguments').getArgs
 localtTools=require('Module:TableTools')
 localyesno=require('Module:Yesno')
 localtArgName={}-- named parameters (setid, omit, listtype)
 localtMessagesToShow={}-- the tail: Preview, Categories

 --------------------------------------------------------------------------------
 -- wlHelpPage
 --
 -- Formats page as [[Helppage#Section|Label]]
 -- by default, sLabel == sSection
 --------------------------------------------------------------------------------
 localfunctionwlHelpPage(sSection,sLabel)
 localsHelpPage='Template:GHS phrases'

 ifsLabel==nilthensLabel=sSectionend

 if(sLabelor'')==''then
 sLabel=''
 else
 sLabel='|'..sLabel
 end
 if(sSectionor'')==''then
 sSection=''
 else
 sSection='#'..sSection
 end
 return'[['..sHelpPage..sSection..sLabel..']]'
 end

 --------------------------------------------------------------------------------
 -- addErrorCategory
 --
 -- Formats as [[Category:GHS errors|catsort]]
 -- or '' when in other namespace.
 -- sCatsort option using: H, P, _
 --------------------------------------------------------------------------------
 localfunctionaddErrorCategory(sCatsort)
 localpagetype=require('Module:Pagetype').main

 localwlErrCat
 ifpagetype()=='article'then-- mainspace only
 ifsCatsort==nilthensCatsort=tArgName['setID']end

 ifsCatsort==''then
 wlErrCat='[[Category:GHS errors]]'
 else
 wlErrCat='[[Category:GHS errors|'..sCatsort..']]'
 end
 else
 return''
 end

 table.insert(tMessagesToShow,wlErrCat)
 return
 end

 --------------------------------------------------------------------------------
 -- addWarningCategory
 --
 -- Formats as [[Category:GHS warnings|catsort]]
 -- mainspace only, or '' when in other namespace.
 -- sCatsort option using: H, P, U, ?, D, O
 --------------------------------------------------------------------------------
 localfunctionaddWarningCategory(sCatsort)
 localpagetype=require('Module:Pagetype').main
 ifsCatsort==nilthensCatsort=tArgName['setID']end

 localwlWarnCat
 ifpagetype()=='article'then-- mainspace only
 ifsCatsort==''then
 wlWarnCat='[[Category:GHS warnings]]'
 else
 wlWarnCat='[[Category:GHS warnings|'..sCatsort..']]'
 end
 else
 return
 end

 table.insert(tMessagesToShow,wlWarnCat)
 return
 end

 --------------------------------------------------------------------------------
 -- addPreviewMsg
 --------------------------------------------------------------------------------
 localfunctionaddPreviewMsg(sMsg)
 localpreviewWarn=require('Module:If preview')._warning
 table.insert(tMessagesToShow,previewWarn({sMsg}))
 return
 end

 --------------------------------------------------------------------------------
 -- showPreviewMsg
 --
 -- show table tMessagesToShow
 -- preview-messages and errorcat
 -- all namespaces
 --------------------------------------------------------------------------------
 localfunctionshowPreviewMsg()
 iftTools.size(tMessagesToShow)>0then
 returntable.concat(tMessagesToShow,'')
 else
 return''
 end
 end

 --------------------------------------------------------------------------------
 -- applyRemoveDuplicates
 --
 -- returns edited table, with double Codes removed
 -- adds warning with codes.
 -- base table tArgs is walked through by a iwalker that reads a singel code,
 -- then a ikiller checks the upward part of the same table to delete all copies
 -- ikiller starts at end of table, walks towards iwalker; then tArgs is compressed
 -- iwalker steps 1 up in the freshly compressed table
 -- Used: iArgs is sorted, and order stays same. compress does not change that.
 --------------------------------------------------------------------------------
 localfunctionapplyRemoveDuplicates(tArgs)
 localiR,iK-- iR = reader, iK = killer
 localhit=false

 iR=1
 whileiR<#tArgsdo
 iK=#tArgs-- will be counting downwards
 whileiK>iRdo
 iftArgs[iK]==tArgs[iR]then
 hit=true
 addPreviewMsg('Duplicate removed: '..tArgs[iR])
 table.remove(tArgs,iK)
 tTools.compressSparseArray(tArgs)
 end
 iK=iK-1
 end
 tTools.compressSparseArray(tArgs)
 iR=iR+1
 end

 ifhitthen
 addWarningCategory('D')
 end
 returntArgs
 end

 --------------------------------------------------------------------------------
 -- applyOmitRules
 --
 -- returns edited table, with Omit phraseID's removed
 -- Omit rule is per GHS 11th rev. ed. (2025)
 --------------------------------------------------------------------------------
 localfunctionapplyOmitRules(tArgs)
 localtRules=GHSdata['tOmitRules']
 localhit=false

 forkeep,omitinpairs(tRules)do
 iftTools.inArray(tArgs,omit)then
 iftTools.inArray(tArgs,keep)then
 hit=true
 fori,kinpairs(tArgs)do
 ifk==omitthen
 table.remove(tArgs,i)
 end
 end
 addPreviewMsg(wlHelpPage('Omit Rules')..': keep '..keep..', omit '..omit)
 end
 end
 end
 ifhitthen
 tTools.compressSparseArray(tArgs)
 addWarningCategory('O')
 end
 returntArgs
 end

 --------------------------------------------------------------------------------
 -- label H-phrases or P-phrases
 --------------------------------------------------------------------------------
 localfunctionPHlabel()
 iftArgName['setID']=='GHS'then
 return'GHS phrases'
 else
 returntArgName['setID']..'-phrases'
 end
 end

 --------------------------------------------------------------------------------
 -- inMono
 --
 -- Use mono font-family (from: Template:Mono)
 --------------------------------------------------------------------------------
 localfunctioninMono(s)
 ifs==nilthens=''end
 return'<span class="monospaced" style="font-family: monospace;">'..s..'</span>'
 end

 --------------------------------------------------------------------------------
 -- wlInlineTag
 --
 -- Returns <sup>[?]</sup> with wikilink to [[helppage#section|errormessage]]
 --------------------------------------------------------------------------------
 localfunctionwlInlineTag(phraseID)
 localsMsg
 sMsg='<sup><span class="noprint Inline-Template">&#91;<i>'
 ..wlHelpPage(PHlabel(),'<span title="'
 ..PHlabel()..': '
 ..phraseID
 ..' not found'
 ..'">?</span>')
 ..'</i>&#93;</span></sup>'
 returnsMsg
 end

 --------------------------------------------------------------------------------
 -- errorPhraseIDnotFound
 --
 -- Returns single value when error (not found in list):
 -- plain value + inline warning [?] (linked) + error cat (mainsp) + preview warning
 --------------------------------------------------------------------------------
 localfunctionerrorPhraseIDnotFound(phraseID)
 ifphraseID==nilthenphraseID=''end

 localinlineTag=wlInlineTag(phraseID)
 localpreviewMsg=wlHelpPage(PHlabel())..': \"'..phraseID..'\" not found'
 addPreviewMsg(previewMsg)
 addErrorCategory()

 returnphraseID..inlineTag
 end

 --------------------------------------------------------------------------------
 -- errorHPsetIDnotFound
 --
 -- setID H or P could not be found
 --------------------------------------------------------------------------------
 localfunctionerrorHPsetIDnotFound()
 localsMsg
 sMsg=wlHelpPage('',PHlabel())
 ..': "H" or "P" set id not found'
 ..' (please use form like "|H200" or "|P300+P301")'
 addPreviewMsg(sMsg)
 addErrorCategory('?')
 returnshowPreviewMsg()
 end

 --------------------------------------------------------------------------------
 -- errorHPsetIDmissing
 --
 -- parameter |setid= to be used
 --------------------------------------------------------------------------------
 localfunctionerrorHPsetIDmissing()
 localsMsg
 sMsg=wlHelpPage('',PHlabel())
 ..': "H" or "P" set id not found,'
 ..' please use |setid=... (H or P)'
 addPreviewMsg(sMsg)
 return
 end

 --------------------------------------------------------------------------------
 -- formatPhraseAbbr
 --
 -- format phraseID and text, for abbr-form (infobox list form)
 --------------------------------------------------------------------------------
 localfunctionformatPhraseAbbr(phraseID,sPhrase)
 return'<abbr class="abbr" title=" '..phraseID..': '..sPhrase..'">'
 ..phraseID
 ..'</abbr>'
 end

 --------------------------------------------------------------------------------
 -- formatPhraseInline
 --
 -- format phraseID and text, for inline form (in sentence)
 -- adds "quotes"
 --------------------------------------------------------------------------------
 localfunctionformatPhraseInline(phraseID,sPhrase)
 returninMono(phraseID)..': \"'..sPhrase..'\"'
 end

 --------------------------------------------------------------------------------
 -- formatPhraseList
 --
 -- as inline, but no "quotes" added.
 --------------------------------------------------------------------------------
 localfunctionformatPhraseList(phraseID,sPhrase)
 returninMono(phraseID)..': '..sPhrase
 end

 --------------------------------------------------------------------------------
 -- getSetID
 --
 -- Determines setID (expected either 'H' or 'P')
 -- First route is: read |setid=
 -- When |setid= is not set, 
 --		it looks for a first parameter that has an H of P prefix (in |P201|P202|...)
 --		when not found, 'GHS' is retured
 -- In one call, P and H numbers can *not* be mixed
 --		so "|H201|P202|" will cause error "P202 not found" (... in H-list)
 --------------------------------------------------------------------------------
 localfunctiongetSetID(tArgs)
 localsetIDfound='GHS'
 localparamsetID=tArgs['setid']ornil

 if(paramsetID~=nil)and(paramsetID=='P'orparamsetID=='H')then
 setIDfound=paramsetID
 else
 localinitial
 fori,vinipairs(tArgs)do
 initial=mw.ustring.match(v,'^[PH]')
 ifinitial~=nilthen
 setIDfound=initial
 break
 end
 end
 end
 returnsetIDfound
 end

 --------------------------------------------------------------------------------
 -- getListType
 --
 -- Checks list format, including those from Module:List
 --------------------------------------------------------------------------------
 localfunctiongetListType(tArgs)
 locallistTypes={
 ['abbr']=true,
 ['bulleted']=true,
 ['unbulleted']=true,
 ['horizontal']=true,
 ['ordered']=true,
 ['horizontal_ordered']=true,
 ['horizontal ordered']=true,
 ['inline']=true
 }
 localsListType=tArgs['listtype']or'abbr'

 ifsListType==''orsListType=='abbr'then
 return'abbr'
 elseiflistTypes[sListType]==truethen
 ifsListType=='horizontal ordered'then
 sListType='horizontal_ordered'
 end
 returnsListType
 else
 sListType='abbr'
 end
 returnsListType
 end

 --------------------------------------------------------------------------------
 -- getDoOmitRules
 --------------------------------------------------------------------------------
 localfunctiongetDoOmitRules(tArgs)
 localb=yesno(tArgs['omit'],true)

 ifb==nilthenb=trueend

 returnyesno(b,true)
 end

 --------------------------------------------------------------------------------
 -- getMinMax
 --------------------------------------------------------------------------------
 localfunctiongetMinMax(targs,key)
 localminmax=targs[key]
 ifminmaxthen
 minmax=mw.ustring.gsub(minmax,'^[PH]','')
 minmax=tonumber(minmax)
 end
 returnminmax
 end

 --------------------------------------------------------------------------------
 -- prepareArgs
 --
 -- First: determine setID (from |setID= OR from prefixes in parameters)
 -- Then: clean up & format phrase IDs (=unnamed parameters)
 --		remove bad characters, create H/P pattern "H201", "P310+P302"
 -- straight array, no nil's, sorted
 --------------------------------------------------------------------------------
 localfunctionprepareArgs(tArgs)

 tArgName['setID']=getSetID(tArgs)
 tArgName['listtype']=getListType(tArgs)
 tArgName['omit']=getDoOmitRules(tArgs)
 tArgName['min']=getMinMax(tArgs,'min')or0
 tArgName['max']=getMinMax(tArgs,'max')or9999

 tArgs=tTools.compressSparseArray(tArgs)-- removes all named args
 ifstring.len(tArgName['setID'])==1and#tArgs>0then
 fori,vinipairs(tArgs)do
 v=mw.text.decode(v)
 v=mw.ustring.gsub(v,'[^%d%+A-Za-z]','')
 v=mw.ustring.gsub(v,'^(%d)',tArgName['setID']..'%1')
 v=mw.ustring.gsub(v,'%+(%d)','+'..tArgName['setID']..'%1')
 tArgs[i]=v
 end
 table.sort(tArgs)
 end
 returntArgs
 end

 --------------------------------------------------------------------------------
 -- listAll
 --
 -- Returns wikitable rows for each phrase id.
 -- requires |setID=P/H
 -- returns full list, all phrases, for a setID
 -- 2-columns wikitable, sorted, sortable, anchor like "H201" for each
 --------------------------------------------------------------------------------
 functionr.listAll(frame)
 localnewArgs=getArgs(frame)
 localtL={}

 prepareArgs(newArgs)

 localtRead
 iftArgName['setID']=='H'ortArgName['setID']=='P'then
 tRead=GHSdata[tArgName['setID']..'phrases']
 else
 errorHPsetIDmissing()
 returnshowPreviewMsg()
 end

 -- Intermediate table t2 to maintain order; read from original table (/data)
 localt2={}
 localiPh
 forsinpairs(tRead)do
 iftArgName.min==0andtArgName.max==9999then
 table.insert(t2,s)
 else
 iPh=tonumber(mw.ustring.match(s,'[PH](%d%d%d)'))
 ifiPhandiPh>=tArgName.minandiPh<=tArgName.maxthen
 table.insert(t2,s)
 end
 end
 end
 table.sort(t2)

 localsTR,v,sAnchor
 -- i = array index, s = phraseID, v = phrase text
 fori,sinipairs(t2)do
 v=tRead[s]
 sAnchor='<span class="anchor" id="'..s..'"></span>'
 sTR='|- '..sAnchor..'\n| datasortvalue="'..i..'" | <span style="font-family: monospace;">'..s..'</span> || '..v
 table.insert(tL,sTR)
 end

 returntable.concat(tL,'\n')
 end

 --------------------------------------------------------------------------------
 -- numberOfPhrases
 --
 -- Documentation
 -- requires |setID=H/P
 -- Returns number of phrases, in format
 --	"GHS H-phrases (123)"
 --------------------------------------------------------------------------------
 functionr.numberOfPhrases(frame)
 localnewArgs=getArgs(frame)

 prepareArgs(newArgs)

 localiT
 iftArgName['setID']=='H'ortArgName['setID']=='P'then
 localtRead=GHSdata[tArgName['setID']..'phrases']

 iftArgName.min==0andtArgName.max==9999then
 iT=tTools.size(tRead)
 else
 localiPh
 iT=0
 forsinpairs(tRead)do
 iPh=tonumber(mw.ustring.match(s,'[PH](%d%d%d)'))
 ifiPhandiPh>=tArgName.minandiPh<=tArgName.maxthen
 iT=iT+1
 end
 end
 end
 else
 errorHPsetIDmissing()
 returnshowPreviewMsg()
 end

 return'GHS '..PHlabel()..' <span style="font-weight: normal;">('..tostring(iT)..')</span>'
 end

 --------------------------------------------------------------------------------
 -- listOmitRules
 --
 -- self-documentation
 --------------------------------------------------------------------------------
 functionr.listOmitRules()
 localtRules=GHSdata['tOmitRules']
 localtL={}
 locals

 s=wlHelpPage('Omit Rules')
 ..': when the <i>keep</i> ID is present, do not show the <i>omit</i> ID phrase'
 table.insert(tL,s)
 forkeep,omitinpairs(tRules)do
 s='&bull; keep '..inMono(keep)..', omit '..inMono(omit)
 table.insert(tL,s)
 end
 returntable.concat(tL,'<br/>')
 end

 --------------------------------------------------------------------------------
 -- _main
 --
 -- processes setID (H, P) and phrase codes
 --		error:	setID not P, H
 --				code not found
 -- cannot mix H and P phrases
 -- reads phrases from /data H or P phrases tables
 -- formats phrase (abbreviation, abbr-title, phraseID)
 --------------------------------------------------------------------------------
 functionr._main(tArgs)

 tArgs=prepareArgs(tArgs)

 if#tArgs==0then
 returnshowPreviewMsg()-- no content
 elseiftArgName['setID']=='GHS'then
 returnerrorHPsetIDnotFound()
 end

 tArgs=applyRemoveDuplicates(tArgs)
 iftArgName['omit']then
 tArgs=applyOmitRules(tArgs)
 end

 localformatterF
 iftArgName['listtype']=='abbr'then
 formatterF=formatPhraseAbbr
 elseiftArgName['listtype']=='inline'then
 formatterF=formatPhraseInline
 else--- Module:List options
 formatterF=formatPhraseList
 end

 localtReadD
 iftArgName['setID']=='H'ortArgName['setID']=='P'then
 tReadD=GHSdata[tArgName['setID']..'phrases']
 else
 returnshowPreviewMsg()
 end

 localsPhrase
 localtR={}
 fori,vinipairs(tArgs)do
 sPhrase=tReadD[v]
 ifsPhrase==nilthen
 table.insert(tR,errorPhraseIDnotFound(tostring(v)))
 else
 table.insert(tR,formatterF(v,sPhrase))
 end
 end

 iftArgName['listtype']=='abbr'then
 returntable.concat(tR,', ')..showPreviewMsg()
 elseiftArgName['listtype']=='inline'then
 returntable.concat(tR,', ')..showPreviewMsg()
 else
 localmList=require('Module:List')
 returnmList[tArgName['listtype']](tR)..showPreviewMsg()
 end
 end

 --------------------------------------------------------------------------------
 -- main
 --
 -- handles template input frame, then calls generic _main() function
 -- To be invoked from {{template}}
 --------------------------------------------------------------------------------
 functionr.main(frame)
 localnewArgs=getArgs(frame)
 returnr._main(newArgs)
 end


 returnr

AltStyle によって変換されたページ (->オリジナル) /