diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po
index f9339324d4..b6a2f23f71 100644
--- a/InvenTree/locale/ja/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ja/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-08-03 23:04+0000\n"
-"PO-Revision-Date: 2021-08-03 23:57\n"
+"POT-Creation-Date: 2021-08-04 01:53+0000\n"
+"PO-Revision-Date: 2021-08-04 01:57\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Language: ja_JP\n"
@@ -137,8 +137,8 @@ msgstr "無効な選択です"
#: label/models.py:112 part/models.py:718 part/models.py:2246
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:206
-#: templates/js/translated/part.js:339 templates/js/translated/part.js:831
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr "お名前"
@@ -159,9 +159,9 @@ msgstr "お名前"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:265
-#: templates/js/translated/part.js:449 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:911
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
+#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
+#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1016
-#: templates/js/translated/part.js:1138 templates/js/translated/part.js:1194
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr ""
@@ -714,8 +714,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:163
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:430
-#: templates/js/translated/part.js:593 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
+#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr "パーツ"
@@ -2070,7 +2070,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1021
+#: templates/js/translated/part.js:1052
msgid "Price"
msgstr ""
@@ -2205,7 +2205,7 @@ msgstr ""
#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:687
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
msgid "Link"
msgstr ""
@@ -2307,7 +2307,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:348
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2317,7 +2317,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:354
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
msgid "Units"
msgstr ""
@@ -2464,13 +2464,13 @@ msgstr "サプライヤー・パーツ"
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:79
+#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr "新しいサプライヤー・パーツを作成"
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:78
+#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
msgid "New Supplier Part"
msgstr "新しいサプライヤー・パーツ"
@@ -2686,8 +2686,8 @@ msgstr "メーカー・パーツの在庫"
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:269 templates/js/translated/part.js:494
-#: templates/js/translated/part.js:654 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2765,7 +2765,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2259
+#: part/templates/part/prices.html:253 part/views.py:2216
msgid "Add Price Break"
msgstr ""
@@ -2773,11 +2773,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2321
+#: company/templates/company/supplier_part.html:199 part/views.py:2278
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2307
+#: company/templates/company/supplier_part.html:213 part/views.py:2264
msgid "Edit Price Break"
msgstr ""
@@ -3212,14 +3212,14 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:255 part/templates/part/category.html:297
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:64
+#: part/templates/part/category.html:279
+#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:65
+#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
msgid "Create new stock location"
msgstr ""
@@ -3442,7 +3442,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:996 templates/js/translated/part.js:1185
+#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
msgid "Unit Price"
msgstr ""
@@ -3482,7 +3482,7 @@ msgstr "%(order)s - %(desc)s の未処理のパーツを受け取
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:855 templates/navbar.html:23
+#: templates/js/translated/part.js:886 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr "パーツ"
@@ -3496,7 +3496,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:670
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
msgid "On Order"
msgstr ""
@@ -4032,7 +4032,7 @@ msgstr ""
#: part/models.py:755 part/models.py:2323
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:641
+#: templates/js/translated/part.js:672
msgid "Category"
msgstr ""
@@ -4041,7 +4041,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:257 templates/js/translated/part.js:485
+#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
msgid "IPN"
msgstr ""
@@ -4054,7 +4054,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:261
+#: report/models.py:200 templates/js/translated/part.js:292
msgid "Revision"
msgstr ""
@@ -4161,7 +4161,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:906
+#: part/models.py:2179 templates/js/translated/part.js:937
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
@@ -4178,7 +4178,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:915
+#: part/models.py:2191 templates/js/translated/part.js:946
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4187,7 +4187,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:923
+#: part/models.py:2197 templates/js/translated/part.js:954
msgid "Requires Value"
msgstr ""
@@ -4195,7 +4195,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:930
+#: part/models.py:2203 templates/js/translated/part.js:961
msgid "Requires Attachment"
msgstr ""
@@ -4427,7 +4427,7 @@ msgstr ""
msgid "All parts"
msgstr "全てのパーツ"
-#: part/templates/part/category.html:38 part/views.py:1912
+#: part/templates/part/category.html:38
msgid "Create new part category"
msgstr ""
@@ -4501,36 +4501,14 @@ msgstr ""
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:256
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
+#: part/templates/part/category.html:253
+msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:261 part/templates/part/category.html:291
-#: templates/js/translated/part.js:25
-msgid "New Category"
-msgstr ""
-
-#: part/templates/part/category.html:262
-msgid "Create new category"
-msgstr ""
-
-#: part/templates/part/category.html:292
-msgid "Create new Part Category"
-msgstr ""
-
-#: part/templates/part/category.html:298 stock/views.py:959
+#: part/templates/part/category.html:280 stock/views.py:959
msgid "Create new Stock Location"
msgstr ""
-#: part/templates/part/category.html:317
-msgid "Select parent category"
-msgstr ""
-
-#: part/templates/part/category.html:324 part/views.py:1860
-msgid "Edit Part Category"
-msgstr ""
-
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr ""
@@ -4788,8 +4766,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:172
-#: templates/js/translated/part.js:249
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
+#: templates/js/translated/part.js:280
msgid "Inactive"
msgstr ""
@@ -4875,8 +4853,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:501
-#: templates/js/translated/part.js:674
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
+#: templates/js/translated/part.js:705
msgid "Building"
msgstr ""
@@ -5031,7 +5009,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2330
+#: part/templates/part/prices.html:197 part/views.py:2287
msgid "Add Internal Price Break"
msgstr ""
@@ -5052,7 +5030,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:239
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:678
+#: templates/js/translated/part.js:522 templates/js/translated/part.js:709
msgid "No Stock"
msgstr ""
@@ -5178,6 +5156,10 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
+#: part/views.py:1860 templates/js/translated/part.js:41
+msgid "Edit Part Category"
+msgstr ""
+
#: part/views.py:1898
msgid "Delete Part Category"
msgstr ""
@@ -5186,35 +5168,35 @@ msgstr ""
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1956
+#: part/views.py:1913
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2057
+#: part/views.py:2014
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2113
+#: part/views.py:2070
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2132
+#: part/views.py:2089
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2202
+#: part/views.py:2159
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2263
+#: part/views.py:2220
msgid "Added new price break"
msgstr ""
-#: part/views.py:2339
+#: part/views.py:2296
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2347
+#: part/views.py:2304
msgid "Delete Internal Price Break"
msgstr ""
@@ -5983,6 +5965,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:251
+msgid "Create new location"
+msgstr ""
+
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
@@ -6864,8 +6850,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:579
-#: templates/js/translated/part.js:824 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6947,34 +6933,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:156
-#: templates/js/translated/part.js:241
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
+#: templates/js/translated/part.js:272
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:160
-#: templates/js/translated/part.js:245
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
+#: templates/js/translated/part.js:276
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:330
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:371
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:372
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:389
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:401
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
msgid "Delete Parameter"
msgstr ""
@@ -7206,91 +7192,99 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:26
+#: templates/js/translated/part.js:20
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:56
+msgid "New Category"
+msgstr ""
+
+#: templates/js/translated/part.js:57
msgid "Create New Part Category"
msgstr ""
-#: templates/js/translated/part.js:34
+#: templates/js/translated/part.js:65
msgid "New Parent"
msgstr ""
-#: templates/js/translated/part.js:97
+#: templates/js/translated/part.js:128
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:148 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:152 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:195
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:199
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:313
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:469 templates/js/translated/part.js:708
+#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:647
+#: templates/js/translated/part.js:678
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:665
+#: templates/js/translated/part.js:696
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:849 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:892
+#: templates/js/translated/part.js:923
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:943 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:944 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:950
+#: templates/js/translated/part.js:981
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:975
+#: templates/js/translated/part.js:1006
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1028
+#: templates/js/translated/part.js:1059
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1060
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1129
+#: templates/js/translated/part.js:1160
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1179
msgid "Single Price Difference"
msgstr ""